[BE-67] 단계 2 통합 · E2E 시나리오 테스트

작업 내용 (설계 의도)

근거 TDD: 20260808-지원관리-확장-tdd.md — “Testing Plan 시나리오 E2E”, “Release Scenario 2단계”

변경 사항

단계 2 완료 판정 기준(PRD Milestones: “서류 업로드→저장 경로 생성→지원 건 연결까지 1회 왕복 성공, 이력서 업로드→프로필 확정→관심 공고 1건 이상 추천도 산출 성공”)을 실 DB + 실제 파일시스템 기반 시나리오 1본으로 검증합니다.

  1. Stage2DocumentRecommendationScenarioTest를 신설합니다. 기존 시나리오 파일을 수정하지 않습니다(Single Writer).
  2. 실제 파일 저장을 검증합니다 — 임시 디렉토리를 저장 루트로 설정하고, 업로드 후 파일이 {root}/{문서유형}/{YYYY-MM-DD}_{제목}_v{버전}_{원본명} 경로에 실제로 생성됐는지 확인합니다.
  3. 시나리오: 이력서 업로드 → 저장 경로 확인 → 프로필 초안 → 항목 수정 → 확정 → 관심 공고 추천도 산출 → 지원 건에 서류 연결 → 새 버전 업로드 후 기존 연결 불변 확인 → 교차 목록에 추천도 노출 확인.
  4. 피처 플래그 전환(2-4·2-6)을 같은 테스트에서 검증합니다 — OFF일 때 409, ON 후 정상.
  5. 단계 1 회귀(인증·관리 상태·교차 목록)가 깨지지 않았는지 확인합니다.

의존

  • BE-61, BE-62, BE-63, BE-64, BE-65, BE-66 (단계 2 전량)

다이어그램

처리 흐름

sequenceDiagram
    participant T as Stage2ScenarioTest
    participant Doc as DocumentApi
    participant FS as 파일시스템
    participant Prof as ResumeProfileApi
    participant Rec as RecommendationApi
    participant Sub as SubmittedDocumentApi
    participant List as JobPostingApi
    T->>Doc: POST /api/documents (PDF)
    Doc->>FS: 파일 저장
    T->>FS: 경로 규칙 검증
    T->>Prof: POST /drafts → PUT 수정 → POST /confirmations
    T->>Rec: 관심 공고 추천도 산출 확인
    T->>Sub: POST /applications/{id}/documents
    T->>Doc: 같은 계열에 v2 업로드
    T->>Sub: 기존 연결이 v1 유지 확인
    T->>List: GET /api/job-postings → recommendation 노출 확인

클래스 의존

flowchart LR
    subgraph Test["src/test scenario"]
        Scenario[Stage2DocumentRecommendationScenarioTest]
        Fixture[Stage2ScenarioFixtures]
    end
    subgraph Api["presentation"]
        DocApi[DocumentApiController]
        ProfApi[ResumeProfileApiController]
        RecApi[RecommendationApiController]
        SubApi[SubmittedDocumentApiController]
        PostApi[JobPostingApiController]
    end
    Scenario --> Fixture
    Scenario --> DocApi
    Scenario --> ProfApi
    Scenario --> RecApi
    Scenario --> SubApi
    Scenario --> PostApi

테스트 케이스

  • 업로드부터 추천도 노출까지 전 흐름이 실 DB·실 파일시스템으로 1회 왕복 성공한다
  • 업로드된 파일이 FR-82 경로 규칙대로 실제 생성된다
  • 회사별 폴더가 생성되지 않는다
  • 프로필 확정 즉시 관심 공고 추천도가 산출된다
  • 확정 전에는 추천도가 산출되지 않는다
  • 지원 건에 v1을 연결한 뒤 v2를 업로드해도 연결이 v1을 유지한다
  • 교차 목록 응답에 추천도 점수·등급이 노출된다
  • document.upload 플래그 OFF면 업로드가 409다
  • recommendation.evaluation 플래그 OFF면 재평가가 409다
  • 단계 1 경로(인증·관리 상태·교차 목록·대시보드)가 회귀 없이 동작한다
  • 업로드 실패(용량 초과) 후 운영 조회에 이력 1건이 나타난다 (A-3)
  • 원 트랜잭션 롤백에도 실패 이력이 남는다 (REQUIRES_NEW 검증)
  • 테스트 종료 시 임시 저장 루트가 정리되어 잔여 파일이 0건이다