test: lock journey lifecycle and static fallback

This commit is contained in:
2026-09-02 05:36:59 +03:00
parent 130ff2d8bb
commit a86767cdc6
11 changed files with 478 additions and 5 deletions

35
tests/browser/README.md Normal file
View File

@@ -0,0 +1,35 @@
# Browser characterization tests
These Playwright tests lock the observable portfolio behavior at the browser
boundary. They exercise the built `dist/` output through the local preview
server rather than replacing Vue, Three.js, WebGL, or Web Audio with production
test hooks.
## Run
Build the preview artifacts, then run the whole browser suite:
```bash
npm run build:preview
npm run test:browser
```
Run only the Phase 2 journey gate:
```bash
npm run test:browser -- tests/browser/journey-integration.spec.ts tests/browser/reduced-motion.spec.ts tests/browser/static-fallback.spec.ts tests/browser/bfcache-lifecycle.spec.ts
```
## Add a case
1. Name the concrete regression the case catches.
2. Use literal inputs and expected browser-visible results.
3. Install `scene-instrumentation.ts` before navigation when resource counts or
platform calls are the observable boundary.
4. Keep failure injection in `page.addInitScript()` or Playwright routing; do
not add a test API to the application bundle.
5. Run the new case against both configured Chromium profiles, then run the
full suite.
Never copy credentials, private project identifiers, or private URLs into a
fixture. Use clearly fake values when a credential-shaped input is required.