test: prove TechLog UI migration parity
This commit is contained in:
@@ -4,9 +4,9 @@ Initialized from `clean-architecture-frontend-template` revision
|
||||
`4dc033cf33a5b6173bbf960d5eb464a406dc4c92`. The exact source identity is
|
||||
recorded in `template.lock.json`.
|
||||
|
||||
A React/Vite reference implementation where architecture boundaries,
|
||||
integration behavior, release coherence, accessibility, performance, and
|
||||
operations are executable contracts rather than conventions.
|
||||
A React/Vite TechLog application where architecture boundaries, integration
|
||||
behavior, release coherence, accessibility, performance, and operations are
|
||||
executable contracts rather than conventions.
|
||||
|
||||
## Start locally
|
||||
|
||||
@@ -28,26 +28,20 @@ corepack pnpm dev
|
||||
Runtime-public settings live in `public/config.json` and are validated before
|
||||
the product tree mounts. Client secrets are forbidden.
|
||||
|
||||
## Included starter experience
|
||||
## TechLog experience
|
||||
|
||||
The default build mounts a domain-neutral application shell with a header,
|
||||
responsive sidebar, route focus management, session integration status, and a
|
||||
persistent `system` / `light` / `dark` theme selector.
|
||||
The default build mounts the source-faithful TechLog Public and Studio
|
||||
experience. Public routes provide discovery, search, documents, topics,
|
||||
projects, releases, and profile content. `/studio` provides the session-scoped
|
||||
mock authoring workflow: create, edit, validate, preview, publish, unpublish,
|
||||
and immutable publication history.
|
||||
|
||||
| Route | Purpose |
|
||||
| --- | --- |
|
||||
| `/` | implementation readiness and starter links |
|
||||
| `/examples/ui` | buttons, fields, cards, alerts, badges, modal, and tokens |
|
||||
| `/examples/states` | loading, refresh, empty, error, auth, forbidden, and not-found states |
|
||||
| `/examples/auth` | reactive external-auth integration seam |
|
||||
| `/examples/reference-resources` | removable, session-required reference feature |
|
||||
|
||||
`AUTH_MODE=demo` is credential-free and accepted only in local/development
|
||||
environments. Deployments use `AUTH_MODE=external` and provide the opaque auth
|
||||
owner described in
|
||||
[`docs/architecture/starter-experience.md`](docs/architecture/starter-experience.md).
|
||||
The client route policy is user experience only; server authorization remains
|
||||
authoritative.
|
||||
The 27 canonical route definitions are divided into `PUBLIC` and `STUDIO`
|
||||
nested layouts. Studio authentication remains deliberately deferred; its mock
|
||||
gateway state lasts for one Studio shell session and resets on a full document
|
||||
load. The exact route, dependency, stylesheet, asset, and parity inventory is
|
||||
recorded in
|
||||
[`docs/operations/techlog-ui-migration-baseline.md`](docs/operations/techlog-ui-migration-baseline.md).
|
||||
|
||||
## Architecture
|
||||
|
||||
@@ -61,11 +55,13 @@ contracts own cross-cutting registries
|
||||
```
|
||||
|
||||
See `docs/architecture/overview.md`, `docs/architecture/layers.md`, and
|
||||
`docs/architecture/starter-experience.md`. The removable vertical slice is
|
||||
under `src/features/reference-feature`; its domain, application input, HTTP
|
||||
adapter, contracts, route runtime, and presentation are installed through the
|
||||
feature contribution files in `src/features`. The generic starter routes
|
||||
continue to typecheck, test, and build after that contribution is removed.
|
||||
`docs/architecture/starter-experience.md`. TechLog is one feature boundary
|
||||
under `src/features/tech-log`. Its immutable Public catalog and session-scoped
|
||||
Studio mock gateway are injected through the application feature input;
|
||||
Public and Studio presentation code shares the typed content renderer without
|
||||
importing concrete adapters. The retained reference feature remains a
|
||||
non-product platform contract fixture and can be removed without changing the
|
||||
TechLog route set.
|
||||
|
||||
### Platform capability review
|
||||
|
||||
@@ -117,6 +113,9 @@ corepack pnpm verify:release
|
||||
corepack pnpm check:registries
|
||||
corepack pnpm drill:runbooks
|
||||
corepack pnpm check:ci
|
||||
corepack pnpm exec vitest run tests/features/tech-log
|
||||
corepack pnpm exec playwright test tests/e2e/tech-log-public-discovery.spec.ts tests/e2e/tech-log-studio-workflow.spec.ts tests/e2e/tech-log-responsive.spec.ts tests/e2e/tech-log-accessibility.spec.ts --project=chromium
|
||||
corepack pnpm test:visual
|
||||
```
|
||||
|
||||
`check:types`는 source, Node scripts/config와 tests를 분리된 TypeScript
|
||||
@@ -144,7 +143,7 @@ corepack pnpm exec playwright install --with-deps chromium firefox webkit
|
||||
Two gates intentionally need external evidence:
|
||||
|
||||
- `review:a11y-manual` needs a signed human keyboard/focus/screen-reader review
|
||||
for all six registered routes.
|
||||
for the registered product routes.
|
||||
- `collect:web-vitals-evidence` stays `FAIL_UNVERIFIED` until a reviewed minimum
|
||||
eligible-sample threshold and 28 days of production data exist.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user