From 44865635e4cb9cb06cf3e8f01f17e754d327d1dd Mon Sep 17 00:00:00 2001 From: SimpleTest Date: Sun, 19 Jul 2026 19:27:03 +0300 Subject: [PATCH] fix: stabilize registration and E2E service workers --- assets/js/app.js | 6 +++++- e2e/playwright.config.ts | 4 ++++ .../controllers/user_registration_html/new.html.heex | 1 - test/who_need_help_web/controllers/page_controller_test.exs | 5 +++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/assets/js/app.js b/assets/js/app.js index a218994..cb89426 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -61,7 +61,11 @@ liveSocket.connect() window.liveSocket = liveSocket if ("serviceWorker" in navigator) { - window.addEventListener("load", () => navigator.serviceWorker.register("/sw.js")) + window.addEventListener("load", () => { + navigator.serviceWorker.register("/sw.js").catch(error => { + console.warn("Service worker registration failed", error) + }) + }) } // The lines below enable quality of life phoenix_live_reload diff --git a/e2e/playwright.config.ts b/e2e/playwright.config.ts index ef1bca5..5869c87 100644 --- a/e2e/playwright.config.ts +++ b/e2e/playwright.config.ts @@ -25,6 +25,10 @@ export default defineConfig({ use: { baseURL, ignoreHTTPSErrors: true, + // The isolated E2E proxy uses a generated self-signed certificate. Browser + // page requests honor ignoreHTTPSErrors, but Chromium's service-worker + // fetch does not. Static delivery is covered by the backend suite. + serviceWorkers: "block", actionTimeout: 10_000, navigationTimeout: 20_000, trace: "retain-on-failure", diff --git a/lib/who_need_help_web/controllers/user_registration_html/new.html.heex b/lib/who_need_help_web/controllers/user_registration_html/new.html.heex index ad19b0e..a02fb5a 100644 --- a/lib/who_need_help_web/controllers/user_registration_html/new.html.heex +++ b/lib/who_need_help_web/controllers/user_registration_html/new.html.heex @@ -26,7 +26,6 @@ autocomplete="username" spellcheck="false" required - phx-mounted={JS.focus()} /> <.input diff --git a/test/who_need_help_web/controllers/page_controller_test.exs b/test/who_need_help_web/controllers/page_controller_test.exs index 299e892..b0bab5e 100644 --- a/test/who_need_help_web/controllers/page_controller_test.exs +++ b/test/who_need_help_web/controllers/page_controller_test.exs @@ -32,4 +32,9 @@ defmodule WhoNeedHelpWeb.PageControllerTest do conn = get(conn, "/manifest.webmanifest") assert response(conn, 200) =~ ~s("short_name": "Who Need Help") end + + test "GET /sw.js", %{conn: conn} do + conn = get(conn, "/sw.js") + assert response(conn, 200) =~ ~s(const CACHE = "who-need-help-static-v1") + end end