Skip to content

fix(test): develop androidTest 컴파일 복구 — 배치 머지 API 드리프트 44건 + PR 컴파일 게이트 - #948

Closed
OnlyReadOneBook wants to merge 2 commits into
developfrom
fix/androidtest-develop-compile
Closed

OnlyReadOneBook wants to merge 2 commits into
developfrom
fix/androidtest-develop-compile

Conversation

@OnlyReadOneBook

Copy link
Copy Markdown
Collaborator

develop 이 :app:compileDebugAndroidTestKotlin 기준으로 깨져 있던 것(에러 44건)을 전수 복구하고, 같은 부류가 다시 미검증으로 착륙하지 못하게 PR unit-test 에 컴파일 게이트를 추가한다.

Closes #936

변경

androidTest 복구 (5파일) — 이슈에 분류된 3파일 외에, 순수 develop(6123a68) 전수 컴파일에서 Setting 2파일의 withdrawCompleted 참조도 추가 적발돼 함께 복구했다.

파일 내용
AfternoteAuthorExtendedAndroidTest ListItem.id·홈 내비 콜백 String→Long
AppAndReceiverCompletionAndroidTest ReceiverHomeViewModel 4-인자 시그니처 반영, 삭제된 LoadCountResult → ReceiverMindRecords/ReceivedTimeLetterList, 홈 fake 를 현행 분리 리포지토리 구조로 재구성(4-way 홈 시나리오·호출 카운트 배열 보존), ReceivedAfternoteDetailRoute 의 필수 onNavigateToPlaylist 반영·플레이리스트 라우트 Long 화
ReceiverAdvancedAndroidTest 제거된 count API override·LoadCountResult 임포트 정리, onNavigateToPlaylist = {}
SettingAccountSecurity / SettingCompletion 삭제된 withdrawCompleted → 현행 WithdrawUiState

CI 게이트 — unit-test.yml 의 Gradle 호출에 :app:compileDebugAndroidTestKotlin 추가. androidTest 를 다루는 워크플로는 android-managed-device.yml(수동+화·금 스케줄)뿐이라 PR 단계에 androidTest 컴파일 검증이 전무했던 게 #936 의 구조적 원인. androidTest 소스셋은 :app 에만 있어 태스크 1개로 전체가 커버되고 에뮬레이터도 불필요하다. required gate 승격은 #848 의 aggregate gate 작업과 연계해 후속으로.

리뷰 포인트 — 기계적 치환이 아닌 곳 2군데

  1. 수신자 홈 mindRecord 실패 표시 — 옛 스펙은 실패→「0개 마음의 기록」이었지만 현행은 조회 실패를 정상 0건과 구분하는 receiver_home_section_count_unavailable(「기록 수를 불러오지 못했습니다.」) 문구라 assertion 을 교체했다.
  2. 탈퇴 실패 시나리오 재작성 — 옛 흐름(탈퇴하기→완료 안내 팝업→확인하기→API 호출)이 현행(탈퇴하기→즉시 deleteAccount()→실패 시 실패 팝업)으로 바뀌어 withdrawFailure_showsFailurePopupAndKeepsSession 로 재작성. SettingCompletion 쪽은 waitForIdle 후 즉시 assert 하던 것을 waitUntil(Error/Success) 상태 전이 대기로 바꿔 레이스도 제거했다.

검증

  • 수정 전 순수 origin/develop(6123a68)에서 :app:compileDebugAndroidTestKotlin 44건 재현 → 수정 후 동일 커맨드 --rerun BUILD SUCCESSFUL (> Task 라인으로 태스크 강제 재실행 확인, 증분 stale 마스킹 배제)
  • :app:ktlintAndroidTestSourceSetCheck --rerun 통과
  • androidTest 실행(에뮬레이터)은 미실측 — 이번 범위는 컴파일 복구다. 재작성 시나리오는 현행 ViewModel·화면 코드 대조로 작성했고, 실행 검증은 다음 GMD 정기 실행(화·금)이 겸한다
  • 시각 변경 없음(androidTest 소스셋+워크플로만) → 스크린샷 baseline 사이클 해당 없음

알려둘 점

#861/#867 androidTest 배치가 develop 의 도메인 API 교체(#868 등)와 조합 컴파일
검증 없이 머지돼 :app:compileDebugAndroidTestKotlin 이 깨져 있던 것을 복구.
ListItem/내비게이션 Long 화, ReceiverHomeViewModel 4-인자 시그니처와 분리
리포지토리 구조 반영, 삭제된 LoadCountResult·withdrawCompleted 참조를 현행
모델(ReceiverMindRecords/ReceivedTimeLetterList·WithdrawUiState)로 교체.
androidTest 를 다루는 워크플로는 android-managed-device.yml(수동+주 2회
스케줄)뿐이라 PR 단계엔 androidTest 컴파일 검증이 전무했다. 실행까진 못 해도
컴파일 깨짐은 PR 에서 잡도록 기존 unit-test 잡의 Gradle 호출에 태스크만 추가.
@OnlyReadOneBook

Copy link
Copy Markdown
Collaborator Author

#949 와 중복이라 닫는다 — 같은 이슈 #936 을 두 세션이 병렬 작업해 2초 간격으로 열린 PR. 변경 파일 6개가 동일하며, #949 는 여기에 더해 에뮬레이터 실측으로 런타임 드리프트 7건(SavedStateHandle String→Long 5건·마스터 키 UUID 게이트 1건·탈퇴 플로우 1건)을 추가 적발·수정하고 29/29 통과까지 확인한 상위집합이다. #949 로 진행한다.

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.

develop androidTest 컴파일 실패 44건 — 배치 머지 API 드리프트가 미검증 착륙, 컴파일 게이트 부재

1 participant