Skip to content

test(receiver): 수신자 주요 화면 screenshot baseline 추가 (closes 332)#386

Open
1hyok wants to merge 2 commits into
developfrom
feat/332
Open

test(receiver): 수신자 주요 화면 screenshot baseline 추가 (closes 332)#386
1hyok wants to merge 2 commits into
developfrom
feat/332

Conversation

@1hyok

@1hyok 1hyok commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

📌𝘐𝘴𝘴𝘶𝘦𝘴

closed test(receiver): Hilt VM 의존 7 Screen stateless content 분리 + screenshot baseline #332

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

  • 수신자 6개 화면(IdentityVerificationEmail · MasterKey · DocumentUpload · SenderRegistration · ReceivedRecords · SenderDetail)의 stateless ...Content 가시성을 privateinternal 로 승격
  • 각 화면 대표 상태에 @PreviewTest screenshot baseline 13장 추가 (screenshotTest 소스셋, 51979a3)
  • stateless content 분리는 Receiver 모듈 분리(83d794f · 0b1f761)에서 이미 완료돼 있어, 본 PR 은 가시성 승격 + baseline 작성만 수행

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

UI 동작 변경 없음 — Compose Preview Screenshot Testing baseline png 13장 신규 추가. 가시성만 조정해 렌더 결과는 동일.

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

  • 7번째 화면 ReceiverAfternoteHomeEntry 는 제외: wiring 레이어로 실질 UI 가 Paging 기반 공유 AfternoteHomeScreen 인데, screenshot 단일 프레임에서 Paging 로드가 끝나지 않아 loading 스피너만 캡처됨. 스피너 애니메이션은 비결정적이라 CI flaky 위험으로 baseline 부적합 판단.
  • baseline 은 로컬 렌더 환경 기준이라 CI 환경과 어긋날 수 있음. CI screenshot 검증 실패 시 CI artifact png 로 교체 예정.
  • base = develop. feat/332 는 origin stub(74fa003) 위에 있던 것을 develop 로 fast-forward 후 작업.
  • 빌드 검증: ./gradlew :feature:afternote:presentation:updateDebugScreenshotTest · validateDebugScreenshotTest BUILD SUCCESSFUL

- 수신자(Receiver) 기능의 주요 화면들에 대한 스크린샷 테스트(`PreviewTest`) 추가
- 대상 화면: 서류 업로드, 이메일 인증, 마스터키 입력, 수신 기록 목록, 발신자 등록, 발신자 상세 정보
- 스크린샷 테스트 파일에서 접근할 수 있도록 각 화면의 `Content` 컴포저블 가시성을 `private`에서 `internal`로 변경
- 각 화면의 다양한 상태(데이터 유무, 인증 진행 상태 등)를 검증하기 위한 스크린샷 참조 이미지 추가
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

Screenshot test fail — baseline 과 CI rendered PNG 차이.

📦 Artifact: https://github.com/Afternote/Afternote-FE/actions/runs/26865005301 (페이지 하단 Artifacts → screenshot-test-results)

🔍 확인 위치 (artifact zip 내부):

  • diff PNG: preview/debug/diffs/...
  • rendered PNG: preview/debug/rendered/... (CI 환경에서 새로 그린 결과)
  • baseline PNG: repo <module>/src/screenshotTestDebug/reference/... (:core:ui · :app · :feature:onboarding:presentation · :feature:afternote:presentation)

📝 조치 가이드:

  • 의도된 시각 변경 → docker build -t afternote-screenshot:latest -f Dockerfile.screenshot .docker run --rm -v "$PWD":/workspace -w /workspace afternote-screenshot:latest ./gradlew :<module>:updateScreenshotTest 로 baseline 갱신 + commit/push
  • diff 가 anti-aliasing/font 차이로 보이면 docker 환경 변경 여부 (Dockerfile.screenshot) 점검

CI ↔ 로컬 환경 차이는 본 워크플로의 container 단계가 root fix 한다 (README 의 "Compose Preview Screenshot Testing (docker baseline)" 섹션 참조).

- 발신자 등록 화면(`SenderRegistrationScreen`)의 빈 상태(Empty) 및 데이터 입력 상태(Filled) 스크린샷 레퍼런스 이미지 갱신
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test(receiver): Hilt VM 의존 7 Screen stateless content 분리 + screenshot baseline

1 participant