first commit

This commit is contained in:
2026-05-29 08:20:56 +01:00
commit 949299f58d
6368 changed files with 527176 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
# codes
## Purpose
`TESTING_DOM_CODES` is the package-local error code registry for `@suaveplan/testing-dom`. All codes share the `TESTING_DOM.` namespace so consumers can match on the prefix to spot testing-library failures in aggregated logs. The registry is hand-built here rather than going through `defineCodes` from `@suaveplan/error` because this package has zero `@suaveplan/*` deps by design.
## Features
- Frozen record of `TESTING_DOM.*` code strings
- `TestingDomCode` type alias for the discriminated union
- Stable — new codes append; removal requires a deprecation cycle
- Structural twin of the `defineCodes` output used by Layer 1 packages
## Usage: Basic Example
```ts
import { TESTING_DOM_CODES } from "@suaveplan/testing-dom";
TESTING_DOM_CODES.RENDER_FAILED; // "TESTING_DOM.RENDER.FAILED"
```
## Usage: Advanced Example
```ts
import {
TestingDomError,
TESTING_DOM_CODES,
type TestingDomCode,
} from "@suaveplan/testing-dom";
function classify(err: TestingDomError): "retry" | "fail" {
switch (err.code) {
case TESTING_DOM_CODES.USER_EVENT_INIT_FAILED:
return "retry";
case TESTING_DOM_CODES.RENDER_FAILED:
case TESTING_DOM_CODES.QUERY_FAILED:
return "fail";
}
}
function isTestingDomError(err: unknown): err is TestingDomError {
return err instanceof TestingDomError;
}
```
## API Reference
### `TESTING_DOM_CODES`
Frozen record of reason → fully-qualified code string.
### `type TestingDomCode`
Union of every `TESTING_DOM_CODES[K]` value.
## Implementation Notes
The runtime record is built by hand (`Object.freeze({ ... })`) rather than via `defineCodes` to maintain the zero-workspace-dep constraint. Adding a new code: append to the record, append to the union type, and keep existing entries unchanged. The package's own test suite verifies that every entry carries a `TESTING_DOM.` prefix and that no two entries share a value.
### Registry Layout
Codes live under the `TESTING.DOM` namespace and are produced by `defineCodes` — same pattern as every other Suaveplan package. Current codes cover render host mount failures, query helper missing-element errors, matcher setup failures, and polyfill double-install attempts. The `TestingDomCode` union is the canonical parameter type for catch blocks and error-helper signatures.
### Stability
Adding a new code is append-only: no renumbering, no migrations. Consumers that type-narrow on `code` get a compile error when a new code is added without a matching branch only if they use the `TestingDomCode` union exhaustively (e.g. in a `switch` with `never` check).