docs(creator): 라이브 다시듣기 mapper 검증을 기록한다

This commit is contained in:
2026-06-17 19:14:03 +09:00
parent 1f0adb21a7
commit 747569c1cc

View File

@@ -302,7 +302,7 @@
### Phase 3: UI model과 상태 표시 mapper 구현
- [ ] **Task 3.1: 라이브 다시듣기 표시 정책 RED 테스트 작성**
- [x] **Task 3.1: 라이브 다시듣기 표시 정책 RED 테스트 작성**
- 생성:
- `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/live/CreatorChannelLiveMapperTest.kt`
- 작업:
@@ -316,8 +316,11 @@
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveMapperTest"`
- 기대 결과:
- mapper 미구현 상태에서 RED 실패한다.
- 검증 기록:
- 2026-06-17: `CreatorChannelLiveMapperTest`를 추가해 `isOwned && isRented` 동시 true 시 `소장중` 우선, 무료 콘텐츠의 free tag/play CTA, 19금 shield, point tag, `seriesName` 미표시, `isFirstContent`/`isOriginalSeries` tag 정책, `ContentSort` label resource 매핑을 검증하도록 했다.
- 2026-06-17: production mapper 구현 전 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveMapperTest"` 실행 결과 `CreatorChannelLiveReplayStatus`, `toReplayUiModel`, `toLabelResId` 미구현으로 `:app:compileDebugUnitTestKotlin FAILED`가 발생해 RED를 확인했다.
- [ ] **Task 3.2: UI model/mapper 구현**
- [x] **Task 3.2: UI model/mapper 구현**
- 생성 후보:
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/live/model/CreatorChannelLiveUiModels.kt`
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/live/model/CreatorChannelLiveMappers.kt`
@@ -329,6 +332,16 @@
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveMapperTest"`
- 기대 결과:
- mapper 테스트가 PASS한다.
- 검증 기록:
- 2026-06-17: `CreatorChannelLiveReplayUiModel`, `CreatorChannelLiveReplayStatus`, `CreatorChannelLiveSortOptionUiModel`을 추가하고 `CreatorChannelAudioContentResponse.toReplayUiModel()`, `ContentSort.toLabelResId()`, `ContentSort.toSortOptionUiModel()`을 구현했다.
- 2026-06-17: 가격/상태 우선순위는 `소장중` > `대여중` > 무료 play > 가격 표시로 고정했다. tag는 기존 오디오 정책과 동일하게 `isOriginalSeries == true`이면 `Original`, `isFirstContent`이면 `First`, `isPointAvailable`이면 `Point`, `price == 0`이면 `Free`를 매핑한다. `secondaryText``duration`만 사용해 `seriesName`을 표시하지 않는다.
- 2026-06-17: `ContentSort` label은 `LATEST`/`POPULAR`/`PRICE_HIGH`/`PRICE_LOW`에 기존 리소스 `screen_audio_content_sort_newest`, `screen_audio_content_sort_popularity`, `screen_audio_content_sort_price_high`, `screen_audio_content_sort_price_low`를 재사용하고, 기존 리소스가 없는 `OWNED``소장순` label은 `creator_channel_live_sort_owned` 문자열로 추가했다.
- 2026-06-17: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveMapperTest"` 실행 결과 `BUILD SUCCESSFUL`로 통과했다.
- 2026-06-17: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.*"` 실행 결과 `BUILD SUCCESSFUL`로 통과했다.
- 2026-06-17: `./gradlew :app:compileDebugKotlin` 실행 결과 `BUILD SUCCESSFUL`로 통과했다.
- 2026-06-17: `./gradlew :app:ktlintCheck` 실행 결과 `BUILD SUCCESSFUL`로 통과했다. 기존 `.editorconfig``disabled_rules` deprecation 경고는 출력되었으나 Phase 3 변경과 무관하다.
- 2026-06-17: 리뷰 게이트에서 `LATEST``최신 콘텐츠`, `OWNED``소장중` 리소스에 매핑되는 문제가 지적되어 `LATEST``screen_audio_content_sort_newest`, `OWNED`는 신규 `creator_channel_live_sort_owned`로 보정했다.
- 2026-06-17: label 보정 후 `./gradlew :app:mergeDebugResources` PASS, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveMapperTest"` PASS, `./gradlew :app:compileDebugKotlin` PASS, `./gradlew :app:ktlintCheck` PASS. 병렬 실행 중 `:app:dataBindingGenBaseClassesDebug`가 Gradle 생성물 경합으로 `R-def.txt` 누락 실패했으나 동일 compile 명령 순차 재실행에서 PASS했다.
---
@@ -542,3 +555,8 @@
- 2026-06-17: `./gradlew :app:ktlintCheck` 최초 실행에서 신규 live test 줄바꿈과 `CreatorChannelLiveModels.kt` 파일명 규칙 위반으로 FAIL. 테스트 helper 줄바꿈을 정리하고 응답 모델 파일명을 `CreatorChannelLiveTabResponse.kt`로 변경한 뒤 재실행해 PASS.
- 2026-06-17: ktlint 보정 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.*"` PASS, `./gradlew :app:compileDebugKotlin` PASS, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*Live*"` PASS.
- 2026-06-17: ktlint 보정 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*"` 재실행 결과 동일한 `CreatorChannelActivitySourceTest` 3개 실패가 재현됐다.
- 2026-06-17: Phase 3 진행. 라이브 다시듣기 UI model/mapper와 mapper RED/GREEN 테스트를 추가했다. Fragment/layout/sort popup/tab 연결은 Phase 4 이후 범위라 변경하지 않았다.
- 2026-06-17: Phase 3 RED 확인. production mapper 구현 전 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveMapperTest"` 실행 시 `CreatorChannelLiveReplayStatus`, `toReplayUiModel`, `toLabelResId` 미구현으로 `:app:compileDebugUnitTestKotlin FAILED`가 발생했다.
- 2026-06-17: Phase 3 GREEN 확인. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveMapperTest"` PASS.
- 2026-06-17: Phase 3 회귀 검증. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.*"` PASS, `./gradlew :app:compileDebugKotlin` PASS, `./gradlew :app:ktlintCheck` PASS. ktlint 실행 중 기존 `.editorconfig``disabled_rules` deprecation 경고가 출력되었다.
- 2026-06-17: Phase 3 리뷰 게이트 보정. `LATEST` label은 `최신순` 리소스 `screen_audio_content_sort_newest`로, `OWNED` label은 신규 다국어 리소스 `creator_channel_live_sort_owned`로 변경했다. 보정 후 `./gradlew :app:mergeDebugResources` PASS, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveMapperTest"` PASS, `./gradlew :app:compileDebugKotlin` PASS, `./gradlew :app:ktlintCheck` PASS.