From 24c1b0d996c6b238327d99ec31e4d839bc6d3a80 Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Wed, 11 Mar 2026 10:31:01 +0100 Subject: [PATCH 1/7] fix --- lib/plausible_web/live/team_setup.ex | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/plausible_web/live/team_setup.ex b/lib/plausible_web/live/team_setup.ex index cf14d8e5d208..46826be6ca66 100644 --- a/lib/plausible_web/live/team_setup.ex +++ b/lib/plausible_web/live/team_setup.ex @@ -84,6 +84,7 @@ defmodule PlausibleWeb.Live.TeamSetup do for={@team_name_form} method="post" phx-change="update-team" + phx-submit="update-team" phx-blur="update-team" id="update-team-form" class="mt-4 mb-8" From 98298f38a2ff56ae453ade7af6467704ae11241a Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Wed, 11 Mar 2026 10:31:07 +0100 Subject: [PATCH 2/7] Revert "fix" This reverts commit 24c1b0d996c6b238327d99ec31e4d839bc6d3a80. --- lib/plausible_web/live/team_setup.ex | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/plausible_web/live/team_setup.ex b/lib/plausible_web/live/team_setup.ex index 46826be6ca66..cf14d8e5d208 100644 --- a/lib/plausible_web/live/team_setup.ex +++ b/lib/plausible_web/live/team_setup.ex @@ -84,7 +84,6 @@ defmodule PlausibleWeb.Live.TeamSetup do for={@team_name_form} method="post" phx-change="update-team" - phx-submit="update-team" phx-blur="update-team" id="update-team-form" class="mt-4 mb-8" From 572889f32a3e5ae7be53435201829b92fbaa9088 Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Wed, 11 Mar 2026 10:31:32 +0100 Subject: [PATCH 3/7] Reapply "fix" This reverts commit 98298f38a2ff56ae453ade7af6467704ae11241a. --- lib/plausible_web/live/team_setup.ex | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/plausible_web/live/team_setup.ex b/lib/plausible_web/live/team_setup.ex index cf14d8e5d208..46826be6ca66 100644 --- a/lib/plausible_web/live/team_setup.ex +++ b/lib/plausible_web/live/team_setup.ex @@ -84,6 +84,7 @@ defmodule PlausibleWeb.Live.TeamSetup do for={@team_name_form} method="post" phx-change="update-team" + phx-submit="update-team" phx-blur="update-team" id="update-team-form" class="mt-4 mb-8" From 926b69185cf7f975acf6f854720d92b5179859d3 Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Wed, 11 Mar 2026 10:32:51 +0100 Subject: [PATCH 4/7] Test --- e2e/tests/dashboard/team-setup.spec.ts | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 e2e/tests/dashboard/team-setup.spec.ts diff --git a/e2e/tests/dashboard/team-setup.spec.ts b/e2e/tests/dashboard/team-setup.spec.ts new file mode 100644 index 000000000000..521bb2a9027f --- /dev/null +++ b/e2e/tests/dashboard/team-setup.spec.ts @@ -0,0 +1,29 @@ +import { test, expect } from '@playwright/test' +import { setupSite } from '../fixtures' +import { randomID } from '../test-utils' + +test('submitting team name via Enter key does not crash', async ({ + page, + request +}) => { + await setupSite({ page, request }) + await page.goto('/team/setup') + + await expect( + page.getByRole('button', { name: 'Create Team' }) + ).toBeVisible() + + const nameInput = page.locator('input[name="team[name]"]') + + await nameInput.clear() + await nameInput.fill('My New Team') + + await nameInput.press('Enter') + + // the form had no phx-submit handler and plain HTTP POST fallback was made + await expect( + page.getByRole('button', { name: 'Create Team' }) + ).toBeVisible() + + await expect(nameInput).toHaveValue('My New Team') +}) From 2c8f6fa0de6b30c77fc077dd796420e8e69c62e0 Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Wed, 11 Mar 2026 10:35:19 +0100 Subject: [PATCH 5/7] Remove unused import --- e2e/tests/dashboard/team-setup.spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/e2e/tests/dashboard/team-setup.spec.ts b/e2e/tests/dashboard/team-setup.spec.ts index 521bb2a9027f..37628bc4fe6f 100644 --- a/e2e/tests/dashboard/team-setup.spec.ts +++ b/e2e/tests/dashboard/team-setup.spec.ts @@ -1,6 +1,5 @@ import { test, expect } from '@playwright/test' import { setupSite } from '../fixtures' -import { randomID } from '../test-utils' test('submitting team name via Enter key does not crash', async ({ page, From b794e6b44d7098258d56c2428389cff8963d80ed Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Wed, 11 Mar 2026 10:38:00 +0100 Subject: [PATCH 6/7] await lv --- e2e/tests/dashboard/team-setup.spec.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/e2e/tests/dashboard/team-setup.spec.ts b/e2e/tests/dashboard/team-setup.spec.ts index 37628bc4fe6f..fa4ed80361fa 100644 --- a/e2e/tests/dashboard/team-setup.spec.ts +++ b/e2e/tests/dashboard/team-setup.spec.ts @@ -8,6 +8,8 @@ test('submitting team name via Enter key does not crash', async ({ await setupSite({ page, request }) await page.goto('/team/setup') + await expectLiveViewConnected(page) + await expect( page.getByRole('button', { name: 'Create Team' }) ).toBeVisible() From 80c0bf70dfacd0e230c248bc3584fc3c222a0b11 Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Wed, 11 Mar 2026 10:49:52 +0100 Subject: [PATCH 7/7] err --- e2e/tests/dashboard/team-setup.spec.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/e2e/tests/dashboard/team-setup.spec.ts b/e2e/tests/dashboard/team-setup.spec.ts index fa4ed80361fa..408a6881b829 100644 --- a/e2e/tests/dashboard/team-setup.spec.ts +++ b/e2e/tests/dashboard/team-setup.spec.ts @@ -1,5 +1,6 @@ import { test, expect } from '@playwright/test' import { setupSite } from '../fixtures' +import { expectLiveViewConnected } from '../test-utils' test('submitting team name via Enter key does not crash', async ({ page, @@ -8,7 +9,16 @@ test('submitting team name via Enter key does not crash', async ({ await setupSite({ page, request }) await page.goto('/team/setup') - await expectLiveViewConnected(page) + // await expectLiveViewConnected(page) + // at test-utils.ts:5 + // + // 3 | + // 4 | export async function expectLiveViewConnected(page: Page) { + // > 5 | return expect(page.locator('.phx-connected')).toHaveCount(1) + // | ^ + // 6 | } + // 7 | + await expect( page.getByRole('button', { name: 'Create Team' }) @@ -27,4 +37,13 @@ test('submitting team name via Enter key does not crash', async ({ ).toBeVisible() await expect(nameInput).toHaveValue('My New Team') + + // should follow a redirect? + await page.goto('/settings/team/general') + + await expectLiveViewConnected(page) + + const nameInput2 = page.locator('input[name="team[name]"]') + // fails: + await expect(nameInput2).toHaveValue('My New Team') })