feat: confirm socket controls by readback
This commit is contained in:
+26
@@ -157,6 +157,32 @@ class SocketViewModelTest {
|
||||
assertNotNull(state.errorMessage)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun commandSuccessReadsBackConfirmedState() = runTest {
|
||||
val viewModel = SocketViewModel(fakeSocketGateway, SavedStateHandle())
|
||||
viewModel.onEvent(SocketUiEvent.Initialize(profileId, deviceName))
|
||||
|
||||
viewModel.onEvent(SocketUiEvent.SetPower(SocketPowerState.ON))
|
||||
|
||||
assertEquals(SocketPowerState.ON, viewModel.state.value.powerState)
|
||||
assertEquals(SocketOperationState.IdleConfirmed, viewModel.state.value.operation)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun readbackFailureKeepsLastConfirmedStateAndMarksAwaitingConfirmation() = runTest {
|
||||
val viewModel = SocketViewModel(fakeSocketGateway, SavedStateHandle())
|
||||
viewModel.onEvent(SocketUiEvent.Initialize(profileId, deviceName))
|
||||
fakeSocketGateway.setError(profileId, deviceName, DomainError.Network(detail = "Readback failed"))
|
||||
|
||||
viewModel.onEvent(SocketUiEvent.SetPower(SocketPowerState.ON))
|
||||
|
||||
assertEquals(SocketPowerState.OFF, viewModel.state.value.powerState)
|
||||
assertEquals(
|
||||
SocketOperationState.AwaitingConfirmation(SocketPowerState.ON),
|
||||
viewModel.state.value.operation,
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun refresh_queriesUpdatedGatewayStatus() = runTest {
|
||||
val viewModel = SocketViewModel(fakeSocketGateway, SavedStateHandle())
|
||||
|
||||
Reference in New Issue
Block a user