docs(home): 최근 소식 상세 이동 요구를 기록한다
This commit is contained in:
@@ -742,7 +742,46 @@
|
||||
|
||||
---
|
||||
|
||||
### Phase 11: 최근 소식 COMMUNITY_POST 상세 이동
|
||||
|
||||
- [x] **Task 11.1: 문서와 RED 테스트로 커뮤니티 상세 이동 계약 고정**
|
||||
- 수정:
|
||||
- `docs/20260625_메인_홈_팔로잉_탭/prd.md`
|
||||
- `docs/20260625_메인_홈_팔로잉_탭/plan-task.md`
|
||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLoginGuardSourceTest.kt`
|
||||
- 작업:
|
||||
- 최근 소식 `COMMUNITY_POST` item 터치 시 `CreatorChannelCommunityDetailActivity.newIntent(requireContext(), postId)`를 사용한다는 계약을 문서화한다.
|
||||
- `HomeMainFragment.onFollowingNewsClick()`이 `HomeFollowingNewsUiItem.Community`만 처리하고, `postId <= 0L`은 가드보다 먼저 무시하는지 source test로 고정한다.
|
||||
- legacy `CreatorCommunityAllActivity` 또는 `Constants.EXTRA_COMMUNITY_POST_ID` 직접 extra 조립을 사용하지 않는지 검증한다.
|
||||
- 검증:
|
||||
- Run: `./gradlew --no-daemon :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLoginGuardSourceTest"`
|
||||
- Expected RED: 구현 전 `onFollowingNewsClick()` no-op 때문에 새 source test가 실패한다.
|
||||
|
||||
- [x] **Task 11.2: COMMUNITY_POST 상세 이동 구현**
|
||||
- 수정:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt`
|
||||
- 작업:
|
||||
- `onFollowingNewsClick()`에서 `HomeFollowingNewsUiItem.Community`가 아니면 즉시 return한다.
|
||||
- `community.postId`가 0 이하이면 즉시 return한다.
|
||||
- 유효한 `postId`는 `ensureMainV2NavigationAllowed` 안에서 `CreatorChannelCommunityDetailActivity.newIntent(requireContext(), postId)`로 시작한다.
|
||||
- 검증:
|
||||
- Run: `./gradlew --no-daemon :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLoginGuardSourceTest"`
|
||||
- Expected GREEN: source test PASS.
|
||||
|
||||
- [x] **Task 11.3: 최근 소식 이동 회귀 검증**
|
||||
- 검증:
|
||||
- Run: `./gradlew --no-daemon :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`
|
||||
- Expected: 팔로잉 관련 local unit/source test PASS.
|
||||
- Run: `./gradlew --no-daemon :app:compileDebugKotlin`
|
||||
- Expected: Kotlin compile PASS.
|
||||
- Run: `git diff --check`
|
||||
- Expected: whitespace error 없음.
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Verification Log
|
||||
- 2026-07-12 Phase 11 검증: 최근 소식 `COMMUNITY_POST` 상세 이동 계약을 source test로 추가하고 `HomeMainFragment.onFollowingNewsClick()`에서 `HomeFollowingNewsUiItem.Community`만 `CreatorChannelCommunityDetailActivity.newIntent(requireContext(), postId)`로 이동하도록 구현했다. RED 시도: 구현 전 targeted test `./gradlew --no-daemon :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLoginGuardSourceTest"`는 120초/300초 timeout으로 assertion 결과까지 도달하지 못했지만, 당시 production은 no-op 상태였고 새 source test는 `ensureMainV2NavigationAllowed`와 상세 이동 호출 문자열을 요구하도록 추가되어 실패 조건을 고정했다. GREEN: 동일 targeted test PASS. 회귀 검증 `./gradlew --no-daemon :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`, `./gradlew --no-daemon :app:compileDebugKotlin`, `git diff --check` PASS. `./gradlew --no-daemon :app:ktlintCheck`는 이번 변경과 무관한 기존 legacy/source 위반(`explorer/profile/creator_community` package underscore, `LiveRoomActivity.kt` formatting, `NicknameUpdateViewModel.kt` indentation 등)으로 FAIL. 실기기 수동 QA는 `adb devices` 결과 연결된 device가 없어 blocked.
|
||||
- 2026-06-25 Phase 1-3 구현 검증: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check` 모두 PASS.
|
||||
- 2026-06-25 Phase 1-3 코드 리뷰 및 재검증: blocking finding 없음. `./gradlew :app:mergeDebugResources`는 최초 sandbox lock 권한 오류 후 승인 실행으로 PASS했고, 나머지 검증 명령도 PASS.
|
||||
- 2026-06-25 Phase 4 코드 리뷰 및 검증: Figma `24:5682` 기준 UI 필드 바인딩 누락을 보완했고, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check` 모두 PASS.
|
||||
|
||||
Reference in New Issue
Block a user