Project
Testing
tests/fixtures/hard/ is a two-page site with every edge case the pipeline has to survive.
| Command | What |
|---|---|
pnpm test |
unit tests (src/**/*.test.ts, co-located with the code) |
pnpm test:e2e |
end-to-end: clones tests/fixtures/hard (2 pages) and requires ≥ 99% at 1440 and 390 px, plus every recorded animation. Skipped when Chromium can’t launch. |
pnpm test:all |
both |
pnpm test:coverage |
unit tests with v8 coverage |
pnpm check |
typecheck + oxlint + oxfmt check + knip + unit tests (what CI’s first job runs) |
pnpm benchmark [urls…] |
clone real sites and print a score table |
The hard-cases fixture
tests/fixtures/hard/ is a two-page site with every edge case the pipeline
has to survive:
- rules inserted with
insertRule(CSS-in-JS) @import+ relativeurl()+ a custom@font-face- 2D canvas and WebGL canvas
<div>inside<p>and a<table>without<tbody>, both created by DOM APIs- live form state (input value, checkbox, textarea)
- class-toggle reveal, WAAPI reveal, timer-driven carousel
- braces and entities in text,
<pre>whitespace, inline-block whitespace srcset/sizes, lazy images, SVG<use xlink:href>, inline event handlers
Images are generated by pnpm fixtures:images.
When changing the pipeline
pnpm checkpnpm test:e2e- Clone at least one real Next.js site with
--buildand compare with the benchmark table in fidelity.md. Scores must not drop.