fix: reconcile leave requests in realtime
This commit is contained in:
@@ -107,6 +107,21 @@ class DriverLiveSyncClientTest {
|
||||
assertTrue(factory.sockets.single().sent.any { it.contains("pusher:pong") })
|
||||
}
|
||||
|
||||
@Test
|
||||
fun subscribesToOwnUpdatesAndSharedLeaveCalendarUpdates() = runTest {
|
||||
val factory = FakeWebSocketFactory()
|
||||
val client = liveClient(factory = factory, scope = this)
|
||||
|
||||
client.start("driver-1", config)
|
||||
factory.sockets.single().message(connectionEstablished("socket-1"))
|
||||
runCurrent()
|
||||
|
||||
val sent = factory.sockets.single().sent
|
||||
assertTrue(sent.any { it.contains("private-driver-mobile.driver-1") })
|
||||
assertTrue(sent.any { it.contains("private-driver-mobile.0") })
|
||||
client.stop()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun closesAndReconnectsWhenConnectedSocketStopsReceivingMessages() = runTest {
|
||||
val factory = FakeWebSocketFactory()
|
||||
|
||||
@@ -55,6 +55,23 @@ class DriverUiStateTest {
|
||||
assertEquals(1, refreshed.leaveRequests.size)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun staleLeaveRequestRefreshDoesNotOverwriteNewerMutationResult() {
|
||||
val state = DriverUiState(
|
||||
screen = DriverScreen.LeaveRequestDetail,
|
||||
leaveRequests = listOf(leaveRequest(id = "leave-1", status = "cancel_requested", version = 3)),
|
||||
selectedLeaveRequest = leaveRequest(id = "leave-1", status = "cancel_requested", version = 3),
|
||||
)
|
||||
|
||||
val refreshed = state.withLoadedLeaveRequests(
|
||||
requests = listOf(leaveRequest(id = "leave-1", status = "approved", version = 2)),
|
||||
navigateToList = false,
|
||||
)
|
||||
|
||||
assertEquals("cancel_requested", refreshed.leaveRequests.single().status)
|
||||
assertEquals(3L, refreshed.selectedLeaveRequest?.version)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun displayRoutesAndSelectedRouteUseLocalRouteActionsProjection() {
|
||||
val route = route(status = "ZAPLANOWANA")
|
||||
@@ -97,13 +114,14 @@ class DriverUiStateTest {
|
||||
assertEquals(listOf("above-first", "above-second", "span"), state.displayRoutes.map { it.id })
|
||||
}
|
||||
|
||||
private fun leaveRequest(id: String, status: String): DriverLeaveRequestDto =
|
||||
private fun leaveRequest(id: String, status: String, version: Long = 1): DriverLeaveRequestDto =
|
||||
DriverLeaveRequestDto(
|
||||
id = id,
|
||||
dateFrom = "2026-07-10",
|
||||
dateTo = "2026-07-12",
|
||||
type = "URLOP",
|
||||
status = status,
|
||||
version = version,
|
||||
)
|
||||
|
||||
private fun route(
|
||||
|
||||
Reference in New Issue
Block a user