{"id":"cmq4r7yey000po601o0pnsi48","docId":"cmq4nh0ww004npl01zd0npn54","version":3,"title":"테스트 체크리스트 — 141 PASS / 0 FAIL","content":"# 테스트 체크리스트 · 현재 결과 (2026-06-08 KST)\n\n> 총 **141 PASS / 0 FAIL** · 단위 71 + 로컬 e2e 35 + 외부 dev-shred e2e 35\n\n## 1. 단위테스트 (71 PASS · `./gradlew test --tests \"*Test\"` 12s)\n\n| 클래스 | 케이스 | 비고 |\n|---|---|---|\n| LegacyMappersTest | 36 | Parameterized — normalizeBiz / Partner/Branch/Contract status / cert / shred / 운영 C-code |\n| JwtServiceTest | 6 | 발급 / parseClaims / TTL / 서명 / issuer / 깨진 토큰 |\n| ExcelStatusLabelTest | 6 | 5 ScheduleStatus 한글 + null |\n| AuthServiceTest | 5 | 성공 / PWD 불일치 / unknown / SUSPENDED / LEFT + audit |\n| AuthorityResolverTest | 4 | ROLE_* + permission codes (합집합/중복 제거) |\n| ScheduleServiceTest | 4 | reassign primary 변경 + audit / bulkStatus |\n| ContractExpiryJobTest | 4 | autoExtend RECURRING +1y / EXPIRED 전환 / autoExtend 제외 / 미래 no-op |\n| ContractControllerTest | 3 | 트랙별 default 보정 (RECURRING +1y, ONE_CALL autoExtend=false, 명시 endedOn 보존) |\n| CodeControllerTest | 3 | duplicate 거부 + create defaults + update |\n| **합계** | **71** | 0 fail / 0 error |\n\n## 2. Playwright e2e (35 PASS · 12s)\n\n> `apps/frontend/e2e/` · `PLAYWRIGHT_BASE_URL` env 로 로컬/외부 양쪽 실행\n\n### UI 시나리오 19 (01-auth-and-dashboard.spec.ts)\n\n| ID | 시나리오 |\n|---|---|\n| E-001 / 001b | 로그인 성공 / 실패 |\n| E-002 / 002b | 다크모드 토글 / 순환 |\n| E-003 ~ E-008 | W01~W08 화면 데이터 + 검색/필터/탭/엑셀버튼 |\n| E-009 | 증명서 필터 변경 |\n| E-010 | 일일업무 카드 + 날짜 변경 |\n| E-011 | 코드 마스터 REGION + ITEM + CERT 탭 |\n| E-012 | ContractDetail 주소 검색 모달 |\n| E-013 | 사이드바 8 메뉴 순회 |\n| E-014 | 로그아웃 → /login redirect |\n| E-015 | 미인증 ProtectedRoute → /login |\n\n### API 시나리오 16 (02-api-endpoints.spec.ts)\n\n| ID | 시나리오 |\n|---|---|\n| E-A01 / A02 | /actuator/health · /v3/api-docs paths >= 30 |\n| E-A03 / A15 | 인증 차단 (no token / invalid token) |\n| E-A04 ~ A09 | contracts / subcontractors / schedules / consoles / dailywork list |\n| E-A10 / A11 / A16 | Code categories + REGION 7 + CRUD round-trip |\n| E-A12 ~ A14 | Excel 3 endpoint xlsx OOXML magic |\n\n## 3. 외부 도메인 e2e (35 PASS · 12s · 2026-06-08)\n\n```bash\nPLAYWRIGHT_BASE_URL=https://dev-shred.irosafe.com npx playwright test\n```\n\n대상: Cloudflare Tunnel + nginx + 실 backend 8081 + MariaDB 풀스택. 운영 환경과 가장 가까운 검증.\n\n## 4. 통합테스트 (작성 9건 · Docker 필요)\n\n- `ApiIntegrationTest` — login / swagger / contracts / codes / excel / CRUD 9 시나리오\n- `FlywaySchemaIntegrationTest` — V1~V8 + role/permission 카운트\n- 실행 환경: 내부 호스트 runner 등록 후 자동 (현재 GitLab CI 단순화로 미실행)\n\n## 5. 수용테스트 (Phase G3 시연 대기)\n\n| ID | 시나리오 | 운영자 |\n|---|---|---|\n| A-001 | 사무실 계약 등록 → 작업자 캘린더 표시 | 사용자 |\n| A-002 | 정기 본사 + 지점 5 → 25일 배치 → 일정 생성 | 사용자 |\n| A-003 | 작업자 일일업무 수거완료 → 캘린더 색상 변경 | 작업자 1 |\n| A-004 | 증명서 5종 발급 + PDF 출력 | 사용자 |\n\n## 6. 결과서\n\n- xlsx: `docs/09_테스트/테스트결과서_irosafe_shred.xlsx` (5 시트)\n- pptx: `docs/09_테스트/테스트결과서_irosafe_shred.pptx` (e2e 스크린샷 10장 + Swagger + 비교 슬라이드)\n- 스크린샷: `docs/09_테스트/스크린샷/` (28장)\n","sourceHash":null,"archivedAt":"2026-06-08T14:12:16+09:00","archivedBy":"sync"}