Move docs/ package mirror into document-navigator plugin
Relocate the ~6k-file docs tree from the repo root into plugins/document-navigator/docs/ so the plugin is self-contained and portable. docs/superpowers/ (specs and plans) stays at the repo root. Moved via cp+rm rather than git mv because directory rename() fails with EPERM on this WSL /mnt DrvFs mount; git rename-detection pairs the identical-content files at commit time. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# `test-setup`
|
||||
|
||||
## Purpose
|
||||
|
||||
Per-package Vitest bootstrap loaded via `setupFiles` before the first
|
||||
test in a worker runs. Its only job is to register a single
|
||||
`afterEach` hook that calls React Testing Library's `cleanup()`, so
|
||||
the DOM is wiped between tests and `screen.getByText` does not pick
|
||||
up stale nodes from a previous test's render tree. The default RTL
|
||||
auto-cleanup only fires when `globalThis.afterEach` is exposed,
|
||||
which is not the case under Vitest's `globals: false` configuration
|
||||
the rest of the project runs with.
|
||||
|
||||
This file is intentionally tiny — it is not a production module and
|
||||
is excluded from the coverage report. It exists alongside the package
|
||||
source so the test runner's setup path is co-located with the tests
|
||||
themselves rather than buried inside a separate `tests/` tree.
|
||||
|
||||
## Features
|
||||
|
||||
- One `afterEach` registration via `@suaveplan/testing/runner`.
|
||||
- Single side-effect import; safe to load multiple times per worker.
|
||||
- Excluded from coverage, types output, and runtime bundles.
|
||||
|
||||
## Usage: Basic
|
||||
|
||||
```ts
|
||||
// vitest.config.ts
|
||||
import { defineConfig } from "vitest/config";
|
||||
export default defineConfig({
|
||||
test: {
|
||||
setupFiles: [
|
||||
"@suaveplan/testing/polyfills",
|
||||
"./src/test-setup.ts",
|
||||
],
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
## Usage: Advanced
|
||||
|
||||
```ts
|
||||
// To add extra per-test cleanup logic, append more afterEach hooks:
|
||||
import { afterEach } from "@suaveplan/testing/runner";
|
||||
|
||||
afterEach(() => {
|
||||
// Reset any module-level state captured by tests.
|
||||
});
|
||||
```
|
||||
|
||||
## API Reference
|
||||
|
||||
This module exports nothing — it is a side-effect bootstrap. The
|
||||
single registration is `afterEach(cleanup)` where `cleanup` is the
|
||||
function exported by `@testing-library/react`.
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
The cleanup hook is registered at module load time, not lazily — so
|
||||
the first import of this module in a worker is the moment the cleanup
|
||||
contract is honoured. Subsequent imports are no-ops because Vitest
|
||||
deduplicates `setupFiles` per worker.
|
||||
Reference in New Issue
Block a user