2.2 KiB
2.2 KiB
Capability Spec Delta: testing-dom (spec-conformance)
Package: @suaveplan/testing-dom
Status: PROPOSED
This delta annotates each existing requirement in openspec/specs/testing-dom/spec.md with a **Verified by:** line and corrects a stale path reference. No requirement semantics change.
MODIFIED Requirements
(See openspec/specs/testing-dom/spec.md for the full requirement bodies; this delta only records the verification mapping and the path correction for the coverage requirement.)
| Requirement | Verified by |
|---|---|
| Layer 0 dep-graph isolation | tests/dep-graph.test.ts |
| Dual-runner conditional exports preserved | tests/exports-map.spec-conformance.test.ts AND src/runner/mocks.test.ts AND src/runner/vitest.ts (default re-exports) |
createTestConfig() produces WSL2-safe configs |
src/config/config.test.ts::"createTestConfig" AND src/config/config.test.ts::"createVitestConfig" |
| Polyfills are side-effect-only | tests/tree-shake.test.ts::"polyfills subpath has no functional surface" |
renderComponent wraps React render with cleanup and userEvent |
src/render/render-component.test.tsx |
| jest-dom matchers extension | src/matchers/matchers.test.tsx |
| Structured errors with stable codes | src/errors/testing-dom-error.test.ts AND tests/exports-map.spec-conformance.test.ts |
| Coverage and docs gates | vitest.config.ts thresholds (100/100/100/100) + bunx turbo test:coverage --filter=@suaveplan/testing-dom gate |
| Test placement follows the genesis hard rule | tests/no-disallowed.test.ts AND directory layout (per-feature *.test.ts(x) co-located in src/, cross-cutting in tests/) |
Path correction
The "Coverage and docs gates" requirement in openspec/specs/testing-dom/spec.md references packages/universal/testing-dom/src/; this delta updates the path to packages/dev/testing-dom/src/ (post domain-first reorg). The ≥ 95% floor remains; the package's vitest.config.ts enforces a tighter 100/100/100/100 actual.
Newly added tests in this change
tests/exports-map.spec-conformance.test.ts— pins thepackage.json#exportsmap: dual-runner conditions on., presence of./polyfills,./matchers,./config,./errors,./render,./queries,./usersubpaths.