test(voicewake): cover trigger matching for runtime listener

This commit is contained in:
Peter Steinberger
2025-12-07 04:53:59 +01:00
parent 38abb044d0
commit 55ea0f398b
2 changed files with 26 additions and 0 deletions

View File

@@ -142,4 +142,10 @@ actor VoiceWakeRuntime {
}
return false
}
#if DEBUG
static func _testMatches(text: String, triggers: [String]) -> Bool {
Self.matches(text: text, triggers: triggers)
}
#endif
}

View File

@@ -0,0 +1,20 @@
import Testing
@testable import Clawdis
@Suite struct VoiceWakeRuntimeTests {
@Test func matchesIsCaseInsensitive() {
let triggers = ["ClAwD", "buddy"]
#expect(VoiceWakeRuntime._testMatches(text: "hey clawd are you there", triggers: triggers))
#expect(!VoiceWakeRuntime._testMatches(text: "nothing to see", triggers: triggers))
}
@Test func matchesIgnoresWhitespace() {
let triggers = [" claude "]
#expect(VoiceWakeRuntime._testMatches(text: "hello claude!", triggers: triggers))
}
@Test func matchesSkipsEmptyTriggers() {
let triggers = [" ", ""]
#expect(!VoiceWakeRuntime._testMatches(text: "hello", triggers: triggers))
}
}