import { test, expect } from "@playwright/test"; import { createServer, type Server } from "node:http"; import { readFile } from "node:fs/promises"; // Real browser/module-cache behavior without a Paperclip instance or LLM. test("development module revalidation bypasses the offline worker across reloads", async ({ page }) => { const worker = await readFile(new URL("../../ui/public/sw.js", import.meta.url), "utf8"); let revalidations = 0; const server: Server = createServer((request, response) => { if (request.url === "/sw.js") { response.writeHead(200, { "content-type": "text/javascript", "cache-control": "no-store" }); response.end(worker); } else if (request.url === "/fixture.js") { if (request.headers["if-none-match"] === '"fixture-v1"') { revalidations++; response.writeHead(304); response.end(); } else { response.writeHead(200, { "content-type": "text/javascript", "cache-control": "no-cache", etag: '"fixture-v1"' }); response.end('document.getElementById("root").textContent = "App mounted";'); } } else { response.writeHead(200, { "content-type": "text/html", "cache-control": "no-store" }); response.end('
'); } }); await new Promise