docs(content): 전체 탭 이동 검증을 기록한다
This commit is contained in:
@@ -217,7 +217,7 @@
|
|||||||
|
|
||||||
### Phase 3: 기존 콘텐츠 전체 탭 이동 contract 추가
|
### Phase 3: 기존 콘텐츠 전체 탭 이동 contract 추가
|
||||||
|
|
||||||
- [ ] **Task 3.1: ContentAllTabViewModel 외부 선택 API 추가**
|
- [x] **Task 3.1: ContentAllTabViewModel 외부 선택 API 추가**
|
||||||
- 수정:
|
- 수정:
|
||||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentAllTabViewModel.kt`
|
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentAllTabViewModel.kt`
|
||||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/ContentAllTabViewModelTest.kt`
|
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/ContentAllTabViewModelTest.kt`
|
||||||
@@ -231,8 +231,12 @@
|
|||||||
- Expected: 기존 테스트와 신규 외부 선택 테스트 PASS.
|
- Expected: 기존 테스트와 신규 외부 선택 테스트 PASS.
|
||||||
- 검증 기록:
|
- 검증 기록:
|
||||||
- 구현 시 이 Task 아래에 명령, 결과, 확인 내용을 한국어로 누적한다.
|
- 구현 시 이 Task 아래에 명령, 결과, 확인 내용을 한국어로 누적한다.
|
||||||
|
- 2026-06-27 구현: `ContentAllTabViewModel.selectTypeAndSort(type, sort)`를 추가해 `selectedType`, `selectedSort`, `selectedDayOfWeek`를 갱신하고 첫 페이지를 재조회하도록 했다. `SERIES`가 아닌 type은 `selectedDayOfWeekFor(type)` 경로로 `dayOfWeek = null`을 유지한다.
|
||||||
|
- 2026-06-27 테스트 추가: `ContentAllTabViewModelTest`에 외부 선택 요청 `FREE` + `POPULAR`, `ORIGINAL` + `LATEST`가 모두 `page=0`, `dayOfWeek=null`로 호출되는 검증을 추가했다.
|
||||||
|
- 2026-06-27 실행: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.ContentAllTabViewModelTest"`
|
||||||
|
- 결과: PASS.
|
||||||
|
|
||||||
- [ ] **Task 3.2: ContentMainFragment에 내부 전체 탭 선택 API 추가**
|
- [x] **Task 3.2: ContentMainFragment에 내부 전체 탭 선택 API 추가**
|
||||||
- 수정:
|
- 수정:
|
||||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragment.kt`
|
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragment.kt`
|
||||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragmentSourceTest.kt`
|
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragmentSourceTest.kt`
|
||||||
@@ -246,8 +250,12 @@
|
|||||||
- Expected: 내부 전체 탭 선택 source 테스트 PASS.
|
- Expected: 내부 전체 탭 선택 source 테스트 PASS.
|
||||||
- 검증 기록:
|
- 검증 기록:
|
||||||
- 구현 시 이 Task 아래에 명령, 결과, 확인 내용을 한국어로 누적한다.
|
- 구현 시 이 Task 아래에 명령, 결과, 확인 내용을 한국어로 누적한다.
|
||||||
|
- 2026-06-27 구현: `ContentMainFragment.selectAllTab(type, sort)`를 추가하고 view 생성 전 호출은 `pendingAllTabSelection`에 저장한 뒤 `onViewCreated` 이후 적용하도록 했다.
|
||||||
|
- 2026-06-27 확인: pending 적용 시 `hasSelectedAllTab = true`를 먼저 설정한 뒤 `textTabBarContent.root.selectTab(CONTENT_TAB_ALL)`과 `showContentTab(CONTENT_TAB_ALL)`을 호출해 `TextTabBarView.selectTab` listener가 유발할 수 있는 기본 `loadInitial()` 중복 호출을 피했다. 실제 데이터 재조회는 `contentAllTabViewModel.selectTypeAndSort(...)` 단일 경로로 수행한다.
|
||||||
|
- 2026-06-27 실행: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.ContentMainFragmentSourceTest"`
|
||||||
|
- 결과: PASS.
|
||||||
|
|
||||||
- [ ] **Task 3.3: MainV2Activity 콘텐츠 전체 탭 진입 API 추가**
|
- [x] **Task 3.3: MainV2Activity 콘텐츠 전체 탭 진입 API 추가**
|
||||||
- 수정:
|
- 수정:
|
||||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/MainV2Activity.kt`
|
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/MainV2Activity.kt`
|
||||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/MainV2ActivitySourceTest.kt`
|
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/MainV2ActivitySourceTest.kt`
|
||||||
@@ -261,12 +269,16 @@
|
|||||||
- Expected: MainV2 콘텐츠 전체 탭 routing source 테스트 PASS.
|
- Expected: MainV2 콘텐츠 전체 탭 routing source 테스트 PASS.
|
||||||
- 검증 기록:
|
- 검증 기록:
|
||||||
- 구현 시 이 Task 아래에 명령, 결과, 확인 내용을 한국어로 누적한다.
|
- 구현 시 이 Task 아래에 명령, 결과, 확인 내용을 한국어로 누적한다.
|
||||||
|
- 2026-06-27 구현: `MainV2Activity.openContentAllTab(type, sort)`를 추가해 CONTENT 탭이 아니면 `viewModel.clickTab(MainV2Tab.CONTENT)`와 `changeFragment(MainV2Tab.CONTENT)`로 콘텐츠 Fragment를 준비한 뒤 기존/new `ContentMainFragment.selectAllTab(type, sort)`를 호출하도록 했다.
|
||||||
|
- 2026-06-27 확인: 이미 CONTENT 탭인 경우 `changeFragment`를 직접 호출하지 않고 기존 `ContentMainFragment`를 찾아 `selectAllTab`만 호출하므로 fragment 중복 생성을 피한다.
|
||||||
|
- 2026-06-27 실행: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.MainV2ActivitySourceTest"`
|
||||||
|
- 결과: PASS.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Phase 4: 기존 콘텐츠 전체 탭 이동 섹션 연결
|
### Phase 4: 기존 콘텐츠 전체 탭 이동 섹션 연결
|
||||||
|
|
||||||
- [ ] **Task 4.1: 콘텐츠 추천 탭 기존 전체 탭 목적지 연결**
|
- [x] **Task 4.1: 콘텐츠 추천 탭 기존 전체 탭 목적지 연결**
|
||||||
- 수정:
|
- 수정:
|
||||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragment.kt`
|
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragment.kt`
|
||||||
- 테스트:
|
- 테스트:
|
||||||
@@ -283,6 +295,10 @@
|
|||||||
- Expected: 기존 전체 탭 이동 섹션별 목적지 source 테스트 PASS.
|
- Expected: 기존 전체 탭 이동 섹션별 목적지 source 테스트 PASS.
|
||||||
- 검증 기록:
|
- 검증 기록:
|
||||||
- 구현 시 이 Task 아래에 명령, 결과, 확인 내용을 한국어로 누적한다.
|
- 구현 시 이 Task 아래에 명령, 결과, 확인 내용을 한국어로 누적한다.
|
||||||
|
- 2026-06-27 구현: `오직 보이스온에서만!`, `새로 올라온 오디오`, `무료 오디오`, `포인트 오디오` chevron click listener를 `ensureMainV2NavigationAllowed`로 감싸고 `(activity as? MainV2Activity)?.openContentAllTab(...)` 경로에 연결했다.
|
||||||
|
- 2026-06-27 확인: routing destination은 각각 `ORIGINAL/LATEST`, `AUDIO/LATEST`, `FREE/POPULAR`, `POINT/POPULAR`로 지정했다. `New&Hot` 및 홈 `처음부터 함께 성장!` click listener는 Phase 4 범위에서 연결하지 않았다.
|
||||||
|
- 2026-06-27 실행: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.ContentMainFragmentSourceTest"`
|
||||||
|
- 결과: PASS.
|
||||||
|
|
||||||
- [ ] **Task 4.2: 기존 전체 탭 이동 수동 검증**
|
- [ ] **Task 4.2: 기존 전체 탭 이동 수동 검증**
|
||||||
- 확인:
|
- 확인:
|
||||||
@@ -293,6 +309,8 @@
|
|||||||
- 콘텐츠 추천 탭 `New&Hot`과 홈 `처음부터 함께 성장!`은 chevron만 표시되고 신규 페이지 이동은 아직 연결되지 않음.
|
- 콘텐츠 추천 탭 `New&Hot`과 홈 `처음부터 함께 성장!`은 chevron만 표시되고 신규 페이지 이동은 아직 연결되지 않음.
|
||||||
- 검증 기록:
|
- 검증 기록:
|
||||||
- 구현 시 이 Task 아래에 테스트 기기/빌드 variant/API 응답 조건과 확인 결과를 한국어로 누적한다.
|
- 구현 시 이 Task 아래에 테스트 기기/빌드 variant/API 응답 조건과 확인 결과를 한국어로 누적한다.
|
||||||
|
- 2026-06-27 상태: BLOCKED/미완료. 현재 작업 환경에서 Android 기기 또는 에뮬레이터를 통한 실제 화면 조작을 수행할 수 없어 수동 검증을 완료하지 못했다.
|
||||||
|
- 2026-06-27 대체 확인: source 테스트로 Phase 4 click listener 연결 대상과 미연결 대상(`New&Hot`)은 검증했으나, 실제 앱 화면에서 chevron 클릭 후 콘텐츠 `전체` 탭 UI/type/sort 표시까지는 확인하지 못했다.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -526,3 +544,10 @@
|
|||||||
|
|
||||||
## Verification Log
|
## Verification Log
|
||||||
- 구현 완료 후 여러 Phase에 걸친 통합 검증, 회귀 검증, 최종 수동 확인 기록을 이 섹션에 누적한다.
|
- 구현 완료 후 여러 Phase에 걸친 통합 검증, 회귀 검증, 최종 수동 확인 기록을 이 섹션에 누적한다.
|
||||||
|
- 2026-06-27 Phase 3~4 범위 실행: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.ContentAllTabViewModelTest"` 결과 PASS.
|
||||||
|
- 2026-06-27 Phase 3~4 범위 실행: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.ContentMainFragmentSourceTest"` 결과 PASS.
|
||||||
|
- 2026-06-27 Phase 3~4 범위 실행: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.MainV2ActivitySourceTest"` 결과 PASS.
|
||||||
|
- 2026-06-27 Phase 3~4 범위 실행: `./gradlew :app:compileDebugKotlin` 결과 PASS.
|
||||||
|
- 2026-06-27 Phase 3~4 범위 실행: `./gradlew :app:ktlintCheck`는 신규 source 테스트의 긴 줄로 1회 실패 후 포맷 수정, 재실행 결과 PASS. 기존 `.editorconfig`의 `disabled_rules` deprecation 경고는 출력되었으나 실패 원인은 아니었다.
|
||||||
|
- 2026-06-27 Phase 3~4 범위 실행: `git diff --check` 결과 PASS(출력 없음).
|
||||||
|
- 2026-06-27 수동 화면 검증: Android 기기/에뮬레이터를 사용할 수 없어 Phase 4 기존 전체 탭 이동 수동 클릭 검증은 완료하지 못했다. Task 4.2에 BLOCKED/미완료로 기록했다.
|
||||||
|
|||||||
Reference in New Issue
Block a user