test: align location marker expectations

This commit is contained in:
SimpleTest 2026-07-23 05:24:06 +03:00
parent 14584ccb8a
commit 0dab9873b3
4 changed files with 19 additions and 7 deletions

View File

@ -37,6 +37,18 @@ edit, branch, or tag was made during this audit.
dismissal with focus restoration, request creation layout, viewport discovery, dismissal with focus restoration, request creation layout, viewport discovery,
and the mobile landing-page map after its lazy-load boundary. Audit screenshots and the mobile landing-page map after its lazy-load boundary. Audit screenshots
are retained under `output/playwright/`. are retained under `output/playwright/`.
- A final fresh isolated browser run passed its one-time administrator bootstrap
1/1 and all 42/42 scenarios in Chromium, Firefox, and WebKit. It re-exercised
authentication/settings, request discovery and clustering, location disclosure,
the full two-user medicine flow, active-node failover, Activity moderation,
notifications/export, localization, accessibility, responsive layouts, and
reconnect behavior. Evidence is retained at
`output/e2e/20260723021944-2163466`. A preceding run exposed stale E2E marker
text after the map legend improvement; the expectation was corrected to the
observed `Helper's live location` accessible name. A fresh focused auth replay
also passed 3/3 across the same browser engines. All run-scoped containers,
networks, Postgres volumes, and image tags were absent after both successful
runs.
- The isolated lifecycle load wrapper completed a scoped smoke run with 5,634 of - The isolated lifecycle load wrapper completed a scoped smoke run with 5,634 of
5,634 successful checks and 6,136 requests with zero failed requests, then 5,634 successful checks and 6,136 requests with zero failed requests, then
removed its exact containers, networks, named volume, temporary environment, removed its exact containers, networks, named volume, temporary environment,

View File

@ -24,7 +24,7 @@ test("browser and Android share chat and live tracking state", async ({ browser
await expect(requester.page.getByText(androidMessage, { exact: true })).toBeVisible(); await expect(requester.page.getByText(androidMessage, { exact: true })).toBeVisible();
if (phase === "observe_android") { if (phase === "observe_android") {
await expect.poll(() => markerKinds(requester.page)).toContain("Shared location"); await expect.poll(() => markerKinds(requester.page)).toContain("Helper's live location");
await requester.page await requester.page
.getByPlaceholder("Write a safe coordination message…") .getByPlaceholder("Write a safe coordination message…")
.fill(browserReply); .fill(browserReply);
@ -32,7 +32,7 @@ test("browser and Android share chat and live tracking state", async ({ browser
await expect(requester.page.getByText(browserReply, { exact: true })).toBeVisible(); await expect(requester.page.getByText(browserReply, { exact: true })).toBeVisible();
} else if (phase === "observe_stopped") { } else if (phase === "observe_stopped") {
await expect(requester.page.getByText(browserReply, { exact: true })).toBeVisible(); await expect(requester.page.getByText(browserReply, { exact: true })).toBeVisible();
await expect.poll(() => markerKinds(requester.page)).not.toContain("Shared location"); await expect.poll(() => markerKinds(requester.page)).not.toContain("Helper's live location");
} else { } else {
throw new Error(`Unsupported CROSS_CLIENT_PHASE: ${phase}`); throw new Error(`Unsupported CROSS_CLIENT_PHASE: ${phase}`);
} }

View File

@ -101,7 +101,7 @@ test("active chat and browser tracking recover after the serving BEAM node resta
await expect(helper.page.getByRole("button", { name: "Stop and delete position" })).toBeVisible(); await expect(helper.page.getByRole("button", { name: "Stop and delete position" })).toBeVisible();
await expect.poll(() => positionCount(helper.page)).toBe(1); await expect.poll(() => positionCount(helper.page)).toBe(1);
await expect.poll(() => positionCount(requester.page)).toBe(1); await expect.poll(() => positionCount(requester.page)).toBe(1);
await expect.poll(() => markerKinds(requester.page)).toContain("Shared location"); await expect.poll(() => markerKinds(requester.page)).toContain("Helper's live location");
await helper.page await helper.page
.getByPlaceholder("Write a safe coordination message…") .getByPlaceholder("Write a safe coordination message…")
@ -175,7 +175,7 @@ test("active chat and browser tracking recover after the serving BEAM node resta
await expect.poll(() => positionCount(helper.page), { timeout: 30_000 }).toBe(1); await expect.poll(() => positionCount(helper.page), { timeout: 30_000 }).toBe(1);
await expect.poll(() => positionCount(requester.page), { timeout: 30_000 }).toBe(1); await expect.poll(() => positionCount(requester.page), { timeout: 30_000 }).toBe(1);
await expect.poll(() => markerKinds(requester.page), { timeout: 30_000 }).toContain( await expect.poll(() => markerKinds(requester.page), { timeout: 30_000 }).toContain(
"Shared location", "Helper's live location",
); );
await helper.page await helper.page
@ -190,7 +190,7 @@ test("active chat and browser tracking recover after the serving BEAM node resta
await expect(helper.page.getByRole("button", { name: "Share location" })).toBeVisible(); await expect(helper.page.getByRole("button", { name: "Share location" })).toBeVisible();
await expect.poll(() => positionCount(helper.page)).toBe(0); await expect.poll(() => positionCount(helper.page)).toBe(0);
await expect.poll(() => positionCount(requester.page)).toBe(0); await expect.poll(() => positionCount(requester.page)).toBe(0);
await expect.poll(() => markerKinds(requester.page)).not.toContain("Shared location"); await expect.poll(() => markerKinds(requester.page)).not.toContain("Helper's live location");
await testInfo.attach("active-failover-evidence", { await testInfo.attach("active-failover-evidence", {
contentType: "application/json", contentType: "application/json",

View File

@ -95,11 +95,11 @@ test("two users complete medicine tracking, handover, realtime chat, and blind r
}); });
await helper.page.getByRole("button", { name: "Share location" }).click(); await helper.page.getByRole("button", { name: "Share location" }).click();
await expect(helper.page.getByRole("button", { name: "Stop and delete position" })).toBeVisible(); await expect(helper.page.getByRole("button", { name: "Stop and delete position" })).toBeVisible();
await expect.poll(() => markerKinds(requester.page)).toContain("Shared location"); await expect.poll(() => markerKinds(requester.page)).toContain("Helper's live location");
await helper.page.getByRole("button", { name: "Stop and delete position" }).click(); await helper.page.getByRole("button", { name: "Stop and delete position" }).click();
await expect(helper.page.getByRole("button", { name: "Share location" })).toBeVisible(); await expect(helper.page.getByRole("button", { name: "Share location" })).toBeVisible();
await expect.poll(() => markerKinds(requester.page)).not.toContain("Shared location"); await expect.poll(() => markerKinds(requester.page)).not.toContain("Helper's live location");
await helper.page.getByRole("button", { name: "Start helping" }).click(); await helper.page.getByRole("button", { name: "Start helping" }).click();
const handoverCode = ( const handoverCode = (