From e640ee6c46f29dd0d8a24813601ea8469f434240 Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 18 Jun 2026 18:42:30 +0900 Subject: [PATCH] =?UTF-8?q?docs(dm):=20WebSocket=20=EC=97=B0=EA=B2=B0=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20=EA=B2=80=EC=A6=9D=EC=9D=84=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/20260610_DM_채팅화면/plan-task.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/20260610_DM_채팅화면/plan-task.md b/docs/20260610_DM_채팅화면/plan-task.md index 0499b069..37152227 100644 --- a/docs/20260610_DM_채팅화면/plan-task.md +++ b/docs/20260610_DM_채팅화면/plan-task.md @@ -596,7 +596,7 @@ ### Phase 10: ViewModel WebSocket 세션/수신/전송 전환 -- [ ] **Task 10.1: OpenRoom 성공 후 JOIN_ROOM 흐름으로 연결 기준 변경** +- [x] **Task 10.1: OpenRoom 성공 후 JOIN_ROOM 흐름으로 연결 기준 변경** - Files: - Modify: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/dm/DmChatRoomViewModel.kt` - Modify: `app/src/test/java/kr/co/vividnext/sodalive/v2/main/chat/dm/DmChatRoomViewModelTest.kt` @@ -609,6 +609,8 @@ - 검증: - Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.chat.dm.DmChatRoomViewModelTest" --max-workers=1` - Expected: OpenRoom 전 미연결, OpenRoom 후 connect + `JOIN_ROOM`, `JOINED` 전 connected 미확정, `JOINED` 후 connected 상태, 중복 connect 방지 테스트가 PASS. + - 검증 기록: + - 2026-06-18: `DmChatRoomViewModelTest`에 `JOINED` 전 `isRealtimeConnected=false`, `JOINED` 후 `true`, 중복 `connectRealtime()` 시 socket connect와 `JOIN_ROOM`이 1회만 수행되는 검증을 추가했다. 수정 전 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.chat.dm.DmChatRoomViewModelTest" --max-workers=1` 실행 결과 `DmChatRoomViewModelTest.kt:326` assertion failure로 RED를 확인했다. 이후 `DmChatRoomViewModel`에 `isRealtimeJoining`/`currentRealtimeRoomId`를 추가하고 `JOINED` 수신 시점에만 connected로 전환하도록 변경했다. 재실행 결과 같은 ViewModel 테스트가 PASS했고, `./gradlew :app:compileDebugKotlin --max-workers=1`, `./gradlew :app:ktlintCheck --max-workers=1`, `git diff --check`도 PASS했다. `ktlintCheck`에서는 기존 `.editorconfig`의 `disabled_rules` deprecation warning만 출력됐다. - [ ] **Task 10.2: MESSAGE 수신 반영으로 교체** - Files: