vignette/apps/web/e2e
Yun Chan 4e6b0045e3 관리자 워크스페이스 접근 확장과 소유자 결정 7건 확정 반영
- 관리자(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.
2026-06-30 10:57:46 +09:00
..
admin.spec.ts 관리자 워크스페이스 접근 확장과 소유자 결정 7건 확정 반영 2026-06-30 10:57:46 +09:00
auth.spec.ts 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00
avatar-expression-lab.spec.ts 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00
avatar-expression.spec.ts 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00
db-persistence.spec.ts Stabilize runtime auth and E2E coverage 2026-06-26 14:47:00 +09:00
layout-visual-gate.spec.ts 런타임 계약과 학습자 흐름 보강 2026-06-29 08:12:14 +09:00
learner.spec.ts 런타임 계약과 학습자 흐름 보강 2026-06-29 08:12:14 +09:00
live2d-assets.spec.ts 대시보드 폴드아웃/드릴다운 정리 + 페르소나 역린·misconduct 반응 + 게이트웨이 격리·RAG 비차단 수정 2026-06-27 02:30:46 +09:00
public-auth-turn.spec.ts Stabilize runtime auth and E2E coverage 2026-06-26 14:47:00 +09:00
readiness.spec.ts 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00
README.md Stabilize runtime auth and E2E coverage 2026-06-26 14:47:00 +09:00
session-layout.spec.ts 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00
session-mvp.spec.ts 운영 화면과 회기 리뷰 UI 갱신 2026-06-28 20:13:21 +09:00
session-persistence.spec.ts Stabilize runtime auth and E2E coverage 2026-06-26 14:47:00 +09:00
session-review-fixture.ts 운영 화면과 회기 리뷰 UI 갱신 2026-06-28 20:13:21 +09:00
session-review.spec.ts 운영 화면과 회기 리뷰 UI 갱신 2026-06-28 20:13:21 +09:00
settings.spec.ts 운영 화면과 회기 리뷰 UI 갱신 2026-06-28 20:13:21 +09:00
support.ts 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00
teacher.spec.ts 평가 및 화면 구조 정리 2026-06-28 21:50:21 +09:00
voice-success.spec.ts 런타임 계약과 학습자 흐름 보강 2026-06-29 08:12:14 +09:00
voice.spec.ts 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00

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=1 targets the public site and does not start the local Vite web server.
  • public-auth.json contains the HttpOnly API session cookie exported by Playwright. Treat it as sensitive and keep it under node_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