Files
2026-05-27 23:29:53 +01:00

31 lines
2.2 KiB
Markdown

# 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 the `package.json#exports` map: dual-runner conditions on `.`, presence of `./polyfills`, `./matchers`, `./config`, `./errors`, `./render`, `./queries`, `./user` subpaths.