diff --git a/tests/nostr-login-permissions.test.mjs b/tests/nostr-login-permissions.test.mjs index 0fa80c4c..1a81e753 100644 --- a/tests/nostr-login-permissions.test.mjs +++ b/tests/nostr-login-permissions.test.mjs @@ -313,7 +313,7 @@ test("NIP-07 login falls back when structured permissions fail", async () => { const pubkey = result.pubkey; assert.equal(pubkey, HEX_PUBKEY); assert.ok(env.enableCalls.length >= 2, "should retry with alternate payloads"); - const [objectCall, stringCall] = env.enableCalls; + const [objectCall, stringCall, plainCall] = env.enableCalls; assert.ok(Array.isArray(objectCall?.permissions)); assert.equal( typeof objectCall.permissions[0], diff --git a/tests/visual/overlay-layers.spec.ts b/tests/visual/overlay-layers.spec.ts index 5382c050..3f167f5a 100644 --- a/tests/visual/overlay-layers.spec.ts +++ b/tests/visual/overlay-layers.spec.ts @@ -10,40 +10,15 @@ declare global { } test.describe("overlay layering tokens", () => { - async function dismissDisclaimerModal(page: Page) { - const modal = page.locator("#disclaimerModal"); - if ((await modal.count()) === 0) { - return; - } - - await page.evaluate(() => { - try { - window.localStorage?.setItem("hasSeenDisclaimer", "true"); - } catch (error) { - console.warn("Failed to persist disclaimer state", error); - } - document - .querySelectorAll("#disclaimerModal") - .forEach((node) => { - node.classList.add("hidden"); - node.setAttribute("data-open", "false"); - }); - document.documentElement?.classList.remove("modal-open"); - document.body?.classList.remove("modal-open"); - }); - - await page.waitForFunction(() => - Array.from( - document.querySelectorAll("#disclaimerModal") - ).every((modalElement) => modalElement.classList.contains("hidden")) - ); - } - test("mobile sidebar shares desktop rail behavior", async ({ page }) => { await page.setViewportSize({ width: 390, height: 844 }); - await page.goto("/index.html", { waitUntil: "networkidle" }); - await dismissDisclaimerModal(page); + // Pre-suppress the disclaimer modal to avoid race conditions with app hydration + await page.addInitScript(() => { + window.localStorage.setItem("hasSeenDisclaimer", "true"); + }); + + await page.goto("/index.html", { waitUntil: "networkidle" }); // Wait for initial fade-in to complete so opacity doesn't interfere with visibility checks await page.waitForFunction(