diff --git a/harness/playwright.config.js b/harness/playwright.config.js index 951838b0..c36d491c 100644 --- a/harness/playwright.config.js +++ b/harness/playwright.config.js @@ -20,13 +20,18 @@ export default defineConfig({ trace: "retain-on-failure", }, // Chromium + Firefox run the OPFS battery; WebKit has no OPFS at all and is - // kept for the day it does. Every other spec is Chromium-only: clients.md. + // kept for the day it does. Firefox ALSO runs the standalone half of the + // shell spec — the deployment improvise-bck's criterion (1) names, which + // mocks nothing; the `@mocked-peer` block it excludes is the one the + // routeWebSocket argument was actually made about (improvise-zkkw). Every + // other spec is Chromium-only: clients.md. projects: [ { name: "chromium", use: { ...devices["Desktop Chrome"] } }, { name: "firefox", use: { ...devices["Desktop Firefox"] }, - testMatch: /opfs\.spec\.js/, + testMatch: /(opfs|shell)\.spec\.js/, + grepInvert: /@mocked-peer/, }, { name: "webkit", diff --git a/harness/tests/shell.spec.js b/harness/tests/shell.spec.js index f494c340..0b51272f 100644 --- a/harness/tests/shell.spec.js +++ b/harness/tests/shell.spec.js @@ -53,7 +53,11 @@ async function outlastTheWatchdog(page) { ).toBeGreaterThanOrEqual(jump); } -test.describe("the shell reports what its peer is doing", () => { +// Tagged, and the tag is what the config's `grepInvert` reads: these four +// mock their peer with `routeWebSocket`, which is slower and flakier across +// three engines. That argument is about THESE, and was never made about the +// standalone block below (improvise-zkkw). +test.describe("the shell reports what its peer is doing", { tag: "@mocked-peer" }, () => { // improvise-hwpi. The fault is injected at the *peer*, not in the page, so // this exercises the real `on_frame` and the real catch. test("a frame the client cannot fold says so on screen", async ({ page }) => { @@ -122,6 +126,10 @@ test.describe("the shell reports what its peer is doing", () => { }); }); +// Chromium AND Firefox: this is the deployment improvise-bck's criterion (1) +// is about, it mocks nothing, and the engine's OPFS is already exercised by +// `opfs.spec.js` — so the one recorded reason for Chromium-only does not +// reach it (improvise-zkkw). test.describe("the standalone deployment", () => { // No `?ws=`, so the page spawns the in-page worker over OPFS. If this draws // a grid, worker.js, bindings.rs, OpfsFs and the seed fetch all ran.