test: cover overlay level throttling
This commit is contained in:
@@ -37,4 +37,27 @@ struct VoiceWakeOverlayControllerTests {
|
|||||||
#expect(VoiceWakeOverlayController.evaluateToken(active: active, incoming: active) == .accept)
|
#expect(VoiceWakeOverlayController.evaluateToken(active: active, incoming: active) == .accept)
|
||||||
#expect(VoiceWakeOverlayController.evaluateToken(active: active, incoming: nil) == .accept)
|
#expect(VoiceWakeOverlayController.evaluateToken(active: active, incoming: nil) == .accept)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test func updateLevelThrottlesRapidChanges() async {
|
||||||
|
let controller = VoiceWakeOverlayController(enableUI: false)
|
||||||
|
let token = controller.startSession(
|
||||||
|
source: .wakeWord,
|
||||||
|
transcript: "level test",
|
||||||
|
attributed: nil,
|
||||||
|
forwardEnabled: false,
|
||||||
|
isFinal: false)
|
||||||
|
|
||||||
|
controller.updateLevel(token: token, 0.25)
|
||||||
|
let first = controller.model.level
|
||||||
|
|
||||||
|
controller.updateLevel(token: token, 0.9)
|
||||||
|
#expect(controller.model.level == first)
|
||||||
|
|
||||||
|
controller.updateLevel(token: token, 0)
|
||||||
|
#expect(controller.model.level == 0)
|
||||||
|
|
||||||
|
try? await Task.sleep(nanoseconds: 120_000_000)
|
||||||
|
controller.updateLevel(token: token, 0.9)
|
||||||
|
#expect(controller.model.level == 0.9)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user