Tooling · @presolve/testing
Vitest and Playwright
@presolve/testing creates immutable runner configuration around an already-published compiler product. It does not parse application source, run a server, or reinterpret compiler diagnostics.
Vitest configuration
import { createPresolveVitestConfig } from "@presolve/testing";export default createPresolveVitestConfig({compilerProduct,readArtifact,fixtures: [{ name: "counter", route: "/" }],});Playwright project metadata
import { createPresolvePlaywrightProject } from "@presolve/testing";const project = createPresolvePlaywrightProject({compilerProduct, readArtifact,baseURL: "http://127.0.0.1:3000",fixtures: [{ name: "profile form", route: "/profile/" }],});baseURL must be an absolute HTTP(S) origin with no path, query, or fragment. Route fixtures remain explicit caller-owned inputs.
Public helpers
createPresolveVitestConfig(options)Returns schema version, runner identity, compiler snapshot metadata, declared fixtures, and one compiler-product Vite plugin.
createPresolvePlaywrightProject(options)Adds a normalized Playwright use.baseURL to the same compiler-bound integration.
declaredTest({ name, command, lane })Creates immutable metadata for a caller-owned local test command.
equalCanonicalBytes(expected, actual)Compares two Uint8Array values exactly without interpreting artifact contents.
What to prove in a browser
- Cold render and usable complete HTML before behavior starts.
- Exact event, state, binding, structure, effect, form, and resource behavior.
- Compatible resume plus malformed-snapshot cold fallback.
- Teardown, cancellation, stale async suppression, and listener cleanup.
- Mobile layout, keyboard operation, focus visibility, zoom, and reduced motion.
The helpers are configuration records, not test runners or preview servers. Start development or preview through the project’s compiler/Vite command boundary.