Fix leave request detail refresh navigation

This commit is contained in:
admin
2026-07-05 11:39:18 +02:00
parent b1a34105f1
commit 3d6e1624e9
3 changed files with 60 additions and 13 deletions
@@ -3,6 +3,7 @@ package pl.firmatpp.kierowca.ui
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
import pl.firmatpp.kierowca.data.model.DriverLeaveRequestDto
import pl.firmatpp.kierowca.ui.theme.AppThemeMode
class DriverUiStateTest {
@@ -20,4 +21,42 @@ class DriverUiStateTest {
assertEquals(AppThemeMode.Material3, state.themeMode)
}
@Test
fun refreshingLeaveRequestsKeepsDetailScreenOpenAndUpdatesSelectedRequest() {
val state = DriverUiState(
screen = DriverScreen.LeaveRequestDetail,
selectedLeaveRequest = leaveRequest(id = "leave-1", status = "pending"),
)
val refreshed = state.withLoadedLeaveRequests(
requests = listOf(leaveRequest(id = "leave-1", status = "approved")),
navigateToList = false,
)
assertEquals(DriverScreen.LeaveRequestDetail, refreshed.screen)
assertEquals("approved", refreshed.selectedLeaveRequest?.status)
}
@Test
fun openingLeaveRequestsNavigatesToList() {
val state = DriverUiState(screen = DriverScreen.Routes)
val refreshed = state.withLoadedLeaveRequests(
requests = listOf(leaveRequest(id = "leave-1", status = "pending")),
navigateToList = true,
)
assertEquals(DriverScreen.LeaveRequests, refreshed.screen)
assertEquals(1, refreshed.leaveRequests.size)
}
private fun leaveRequest(id: String, status: String): DriverLeaveRequestDto =
DriverLeaveRequestDto(
id = id,
dateFrom = "2026-07-10",
dateTo = "2026-07-12",
type = "URLOP",
status = status,
)
}