Files
WRNexusJS/packages/dev-server/test/performance-runtime.test.ts
T
Clintchiz 379f80cbd0
Quality / quality (ubuntu-latest) (push) Failing after 12m26s
Quality / quality (windows-latest) (push) Canceled after 0s
fix: force PWA worker updates
2026-08-03 00:46:52 +05:30

29 lines
1.4 KiB
TypeScript

import { expect, test } from "bun:test";
import { PWA_CLIENT, PWA_DEV_CLEANUP_CLIENT, usesMobileRuntime } from "../src/runtime.ts";
test("PWA registration is valid JavaScript and Trusted Types compatible", () => {
expect(() => new Bun.Transpiler({ loader: "js" }).transformSync(PWA_CLIENT)).not.toThrow();
expect(PWA_CLIENT).toContain('createPolicy("wrnexus-pwa"');
expect(PWA_CLIENT).toContain("createScriptURL(swUrl)");
expect(PWA_CLIENT).toContain('register(swUrl, { updateViaCache: "none" })');
expect(PWA_CLIENT).toContain("registration.update()");
expect(PWA_CLIENT).toContain('addEventListener("controllerchange"');
});
test("development PWA cleanup removes stale WRNexus service workers and caches", () => {
expect(() =>
new Bun.Transpiler({ loader: "js" }).transformSync(PWA_DEV_CLEANUP_CLIENT),
).not.toThrow();
expect(PWA_DEV_CLEANUP_CLIENT).toContain("registration.unregister()");
expect(PWA_DEV_CLEANUP_CLIENT).toContain("wrnexus-pwa-");
});
test("mobile runtime is shipped only for pages using mobile or native directives", () => {
expect(usesMobileRuntime('<main class="page">Docs</main>')).toBe(false);
expect(usesMobileRuntime('<button data-native-mobile="share">Share</button>')).toBe(true);
expect(usesMobileRuntime("<div data-mobile-only>App</div>")).toBe(true);
expect(usesMobileRuntime('<button data-on-wrnexus-browser-click="open">Open</button>')).toBe(
true,
);
});