fix(dm): creatorId 방 열기 thread를 보정한다
This commit is contained in:
@@ -280,6 +280,7 @@ class DmChatRoomViewModel(
|
|||||||
val data = response.requireData()
|
val data = response.requireData()
|
||||||
repository.openRoom(token = authToken(), roomId = data.roomId)
|
repository.openRoom(token = authToken(), roomId = data.roomId)
|
||||||
}
|
}
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(
|
.subscribe(
|
||||||
{ handleOpenRoomResult(it) },
|
{ handleOpenRoomResult(it) },
|
||||||
{ handleError(it) }
|
{ handleError(it) }
|
||||||
|
|||||||
@@ -113,6 +113,25 @@ class DmChatRoomViewModelTest {
|
|||||||
assertEquals(12L, state.roomId)
|
assertEquals(12L, state.roomId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `creatorId 진입은 openRoom 결과 처리 전에 main thread로 다시 전환한다`() {
|
||||||
|
val source = projectFile(
|
||||||
|
"app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/dm/DmChatRoomViewModel.kt"
|
||||||
|
).readText()
|
||||||
|
val createRoomAndOpenSource = source
|
||||||
|
.substringAfter("private fun createRoomAndOpen")
|
||||||
|
.substringBefore("private fun openRoom")
|
||||||
|
.filterNot { it.isWhitespace() }
|
||||||
|
|
||||||
|
assertTrue(
|
||||||
|
"CreateOrGetRoom 이후 OpenRoom 결과는 LiveData 갱신 전 main thread로 재전환되어야 한다.",
|
||||||
|
createRoomAndOpenSource.contains(
|
||||||
|
".flatMap{response->valdata=response.requireData()repository.openRoom(token=authToken(),roomId=data.roomId)}" +
|
||||||
|
".observeOn(AndroidSchedulers.mainThread()).subscribe("
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `유효하지 않은 진입 값은 종료 이벤트를 발행한다`() {
|
fun `유효하지 않은 진입 값은 종료 이벤트를 발행한다`() {
|
||||||
viewModel.enter(roomId = 0L, creatorId = 0L)
|
viewModel.enter(roomId = 0L, creatorId = 0L)
|
||||||
|
|||||||
Reference in New Issue
Block a user