Repository navigation
[Test] 전경 준비의 여섯 갈래를 각각 고정한다 - #236
Merged
Merged
Conversation
makeWarmupFixture가 backgroundTransferManager를 넘기지 않았다. 파라미터조차 없어서 코디네이터는 모든 테스트에서 이 의존성을 nil로 받았고, 그러면 persistPlayableIntroJobIfSupported와 resumePersistedTransfersNow가 첫 guard에서 그대로 반환한다. 즉 프리페치 지속화와 전송 재개 코드는 **한 줄도 실행되지 않은 채** 초록이었다. 다음에 이 근처를 고치면 깨져도 아무도 모른다. BackgroundTransferSpy를 붙이고 여섯 가지를 고정했다. - 씬 활성화가 남은 전송을 재개한다 - 백그라운드로 내려갈 때는 재개하지 않는다 (내려가는 길에 할 일이 아니다) - 로그아웃하면 큐를 전부 버린다 — 남기면 다음 계정이 이전 계정 음성을 받는다 - 계정 전환은 새 계정 것만 재개한다 - BGAppRefresh 진입점이 전송을 정리한다 - 동기화 완료 스캔은 앱이 앞에 있을 때만 돈다 테스트가 실제로 무는지 변이로 확인했다. setSceneActive에서 resumePersistedTransfers() 제거, 로그아웃에서 discardAllTransfers() 제거, routineSyncDidComplete에서 isSceneActive 가드 제거 — 셋 다 각각 해당 테스트가 잡았다. 확인 뒤 제품 코드는 원복했다. 스모크 1,061개 통과. Co-Authored-By: Claude <noreply@anthropic.com>
prepareForegroundNow는 여섯 갈래로 끝나는데, 그 enum은 private이라 밖에서 볼 수 없다. 그래서 각 갈래를 만들어내는 입력과 밖으로 드러나는 결과를 짝지어 고정했다. prepareNow와 합치기 전에 이 여섯이 서 있어야 한다. .prepared → 바인딩·응답·캐시가 다 있을 때 .unavailable → 바인딩도 서버로 보낼 의도도 없을 때 (로컬 루틴) .pendingBinding → 그룹 생성이 큐에 올라가 바인딩을 기다릴 때 .pendingGeneration → 서버가 아직 만들고 있을 때 .retryableRemoteRequest → 상태 조회가 실패했을 때 .retryableDownload → 내려받기가 실패했을 때 뒤의 네 갈래는 밖에서 모두 .retryablePending으로 보인다. 그래서 단언만으로는 엉뚱한 갈래로 가도 통과한다. 변이로 확인했다 — 네 갈래를 하나씩 .unavailable로 바꿔 보니 각각 제 테스트가 잡았고, 그룹 바인딩 대기 분기를 지웠을 때도 그렇다. 확인 뒤 제품 코드는 원복했다. 실패를 만들 수단이 없어 스텁 둘을 보강했다. WarmupRemoteStub.failAllResponses와 FailingWarmupDownloader. 이 둘이 없어서 마지막 두 갈래는 여태 한 번도 실행되지 않았다. 스모크 1,067개 통과. Co-Authored-By: Claude <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: Comment |
MinHeokChoi
changed the base branch from
test/tts-warmup-fixture-coverage
to
main
September 23, 2026 23:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✨ PR 유형
어떤 변경 사항이 있나요??
스택 PR 4/5 · base:
test/tts-warmup-fixture-coverage🛠️ 작업내용
[Test] 전경 준비의 여섯 갈래를 각각 고정한다
prepareForegroundNow는 여섯 갈래로 끝나는데, 그 enum은 private이라 밖에서
볼 수 없다. 그래서 각 갈래를 만들어내는 입력과 밖으로 드러나는 결과를 짝지어
고정했다. prepareNow와 합치기 전에 이 여섯이 서 있어야 한다.
.prepared → 바인딩·응답·캐시가 다 있을 때
.unavailable → 바인딩도 서버로 보낼 의도도 없을 때 (로컬 루틴)
.pendingBinding → 그룹 생성이 큐에 올라가 바인딩을 기다릴 때
.pendingGeneration → 서버가 아직 만들고 있을 때
.retryableRemoteRequest → 상태 조회가 실패했을 때
.retryableDownload → 내려받기가 실패했을 때
뒤의 네 갈래는 밖에서 모두 .retryablePending으로 보인다. 그래서 단언만으로는
엉뚱한 갈래로 가도 통과한다. 변이로 확인했다 — 네 갈래를 하나씩 .unavailable로
바꿔 보니 각각 제 테스트가 잡았고, 그룹 바인딩 대기 분기를 지웠을 때도 그렇다.
확인 뒤 제품 코드는 원복했다.
실패를 만들 수단이 없어 스텁 둘을 보강했다. WarmupRemoteStub.failAllResponses와
FailingWarmupDownloader. 이 둘이 없어서 마지막 두 갈래는 여태 한 번도 실행되지
않았다.
스모크 1,067개 통과.
Co-Authored-By: Claude noreply@anthropic.com
규모 — 1 file changed, 155 insertions(+)
📋 추후 진행 상황
5번 PR이 이 안전망 위에서 두 준비 메서드의 겹치는 부분을 정리합니다.
📌 리뷰 포인트
뒤의 네 갈래는 밖에서 모두
.retryablePending으로 보입니다. 단언만으로는 엉뚱한 갈래로 가도 통과하므로, 네 갈래를 하나씩.unavailable로 바꿔 보며 각각 제 테스트가 잡는지 확인했습니다. 그룹 바인딩 대기 분기를 지웠을 때도 마찬가지입니다. 확인 뒤 제품 코드는 원복했습니다.실패를 만들 수단이 없어 스텁 둘을 보강했습니다(
WarmupRemoteStub.failAllResponses,FailingWarmupDownloader). 이 둘이 없어서 마지막 두 갈래는 여태 한 번도 실행되지 않았습니다.✅ Checklist
검증: 시뮬레이터 smoke 1,067개 통과(실패 0, 실기기 전용 3건 skip). 정적 게이트 3종 통과.
앞 PR이 머지되면 이 PR의 base는 자동으로
main이 된다. 순서대로 머지한다.🤖 Generated with Claude Code