- 관리자(role=admin)가 학습자·교수자·관리자 워크스페이스를 모두 접근하도록 can_access_role/require_role와 프론트 auth 헬퍼·Sidebar 내비를 정리하고 admin 워크스페이스 내비 E2E를 추가. - 소유자 결정 7건 전건 확정(2026-06-30)을 SSOT 대시보드·백로그에 반영하고 결정 필요 7→0으로 동기화. SSOT drift 게이트 기대 카운트도 갱신. - 확정된 H1 평가설계(κ≥0.70·ICC≥0.75·환각률≤0.03·t-검정 α=0.05·무작위 배정)를 approved-export κ 게이트(checker·dataset_export·recursive export)와 KPI 측정계획·export manifest 문서에 반영. 검증: npm run typecheck, npm run check:api-types, 백엔드 pytest 290 passed, admin 내비 E2E 1 passed, 레이아웃 시각게이트 9/9, session-layout 4 passed, SSOT drift 게이트 PASS. |
||
|---|---|---|
| .. | ||
| admin.spec.ts | ||
| auth.spec.ts | ||
| avatar-expression-lab.spec.ts | ||
| avatar-expression.spec.ts | ||
| db-persistence.spec.ts | ||
| layout-visual-gate.spec.ts | ||
| learner.spec.ts | ||
| live2d-assets.spec.ts | ||
| public-auth-turn.spec.ts | ||
| readiness.spec.ts | ||
| README.md | ||
| session-layout.spec.ts | ||
| session-mvp.spec.ts | ||
| session-persistence.spec.ts | ||
| session-review-fixture.ts | ||
| session-review.spec.ts | ||
| settings.spec.ts | ||
| support.ts | ||
| teacher.spec.ts | ||
| voice-success.spec.ts | ||
| voice.spec.ts | ||
Playwright E2E
These tests exercise the app through the Vite /api proxy and a running local
FastAPI server. They do not replace /auth/me, /personas, sessions, admin, or
review endpoints with Playwright route fixtures.
Required local services:
# apps/api
python -m uvicorn app.main:app --host 127.0.0.1 --port 8000
# apps/web, started automatically by Playwright unless already running
npm run dev -- --host 127.0.0.1 --port 5173
Useful overrides:
PLAYWRIGHT_PORT=5174 npm run e2e
PLAYWRIGHT_BASE_URL=http://localhost:5173 npm run e2e
VITE_API_BASE=http://127.0.0.1:8000 npm run e2e
Public Google OAuth /turn smoke:
# 1) Verify the public API is not accidentally serving the dev runtime.
$env:E2E_PUBLIC_AUTH="1"
npx playwright test e2e/public-auth-turn.spec.ts --project=chromium-public-auth --grep "production-safe"
# 2) Open a browser, sign in with an allowed Google account, then close codegen.
npx playwright codegen https://vignette.chanpaca.net/login --save-storage=./node_modules/.tmp/public-auth.json
# 3) Reuse that authenticated storage state for the public API turn smoke.
$env:E2E_PUBLIC_AUTH="1"
$env:E2E_PUBLIC_STORAGE_STATE="./node_modules/.tmp/public-auth.json"
npx playwright test e2e/public-auth-turn.spec.ts --project=chromium-public-auth
Notes:
E2E_PUBLIC_AUTH=1targets the public site and does not start the local Vite web server.public-auth.jsoncontains the HttpOnly API session cookie exported by Playwright. Treat it as sensitive and keep it undernode_modules/.tmp.- The API session TTL is currently 8 hours, so recapture storage state when the smoke begins returning
401.
Install browser binaries once with:
npx playwright install chromium