refactor: 프론트엔드 리펙토링

This commit is contained in:
donghyeon-ka
2026-09-18 22:05:42 +09:00
parent 5cc41467ae
commit ec7f20e2ee
100 changed files with 6005 additions and 2867 deletions
@@ -105,6 +105,24 @@ component suite로 분리되어 있다.
실제 QueryClient 위에서 검증한다. HTTP 자동 retry가 소유자이므로 이 adapter의
query/mutation vendor retry는 꺼져 있다.
같은 기준을 대형 unit suite에도 적용한다. 줄 수를 기준으로 자르지 않고 실패가
가리켜야 하는 behavior owner를 기준으로 분리한다.
- `public-response-cache.test.ts`: 일반 stage/activate/lookup/cache contract
- `public-response-cache-repair.test.ts`: active release repair의 failure atomicity
- `resumable-upload-runtime.test.ts`: upload/reconcile/control-plane 흐름
- `resumable-upload-runtime-teardown.test.ts`: bounded drain/raw provider teardown
- `security-followup.test.ts`: archived local evidence
- `security-provider-evidence.test.ts`: provider signature/supervision/process lifecycle
- `security-promotion-staging.test.ts`: private staging seal/replay/CLI identity
- `tests/integration/provider-guardian-transaction.test.ts`: child process,
filesystem, IPC frame, READY/PUBLISHED handshake와 process lifecycle. pure unit
pool에 두지 않으며 handshake budget은 protocol timeout이 아닌 test watchdog이다.
-`*-fixture.ts`: 해당 owner들 사이에서만 공유하는 deterministic test fixture
이 분리는 production owner와 test failure surface를 맞추기 위한 것이며, 단순
LOC 감축 목적이 아니다.
#### Form과 route 위험
form component/reference feature test가 error summary, 첫 오류 focus, Zod
+6 -2
View File
@@ -11,7 +11,7 @@ Each gate is blocking in its declared scope. Failures are not downgraded with
| unit | `pnpm test:unit` | Node-only domain/application/pure policy/runtime units; no systemd/bwrap/cgroup prerequisite | `artifacts/tests/unit.xml` |
| capability contract | `pnpm test:contract` | reusable capability consumer contracts | `artifacts/tests/contract.xml` |
| component | `pnpm test:component` | React/hook/UI behavior | `artifacts/tests/component.xml` |
| integration | `pnpm test:integration` | HTTP/MSW, IndexedDB and composed browser-runtime boundaries | `artifacts/tests/integration.xml` |
| integration | `pnpm test:integration` | HTTP/MSW, IndexedDB, composed browser-runtime boundaries, child-process/filesystem/IPC integration | `artifacts/tests/integration.xml` |
| system / CI runner | `pnpm test:system` | compatible Linux host with systemd, bubblewrap, cgroup v2 and CI-provider process controls | `artifacts/tests/system.xml` |
| end-to-end | `pnpm test:e2e` | pinned browser engines | `artifacts/tests/e2e/` |
| accessibility | `pnpm test:a11y` | pinned browser engines | `artifacts/tests/a11y.json` |
@@ -64,7 +64,11 @@ CI / release assurance:
A host-level process/sandbox test must not be placed in `tests/unit` merely
because it uses Vitest. The classification follows the system boundary and
prerequisites, not the test framework.
prerequisites, not the test framework. Process-heavy tests that spawn child
processes but do not require privileged host facilities belong in
`tests/integration`; for example the provider guardian transaction protocol
lives at `tests/integration/provider-guardian-transaction.test.ts`. Its
handshake timeout is a test watchdog, not a production protocol deadline.
End-to-end and automated accessibility scenarios run on the pinned Chromium,
Firefox, and WebKit engines. The responsive contract explicitly exercises