feat(ios): sync wake words via gateway
This commit is contained in:
@@ -48,13 +48,18 @@ import UIKit
|
||||
}
|
||||
|
||||
@Test @MainActor func voiceWakeWordsViewBuildsAViewHierarchy() {
|
||||
let appModel = NodeAppModel()
|
||||
let root = NavigationStack { VoiceWakeWordsSettingsView() }
|
||||
.environmentObject(appModel)
|
||||
_ = Self.host(root)
|
||||
}
|
||||
|
||||
@Test @MainActor func chatSheetBuildsAViewHierarchy() {
|
||||
let appModel = NodeAppModel()
|
||||
let bridge = BridgeSession()
|
||||
let root = ChatSheet(bridge: bridge, sessionKey: "test")
|
||||
.environmentObject(appModel)
|
||||
.environmentObject(appModel.voiceWake)
|
||||
_ = Self.host(root)
|
||||
}
|
||||
|
||||
|
||||
23
apps/ios/Tests/VoiceWakeGatewaySyncTests.swift
Normal file
23
apps/ios/Tests/VoiceWakeGatewaySyncTests.swift
Normal file
@@ -0,0 +1,23 @@
|
||||
import Foundation
|
||||
import Testing
|
||||
@testable import Clawdis
|
||||
|
||||
@Suite struct VoiceWakeGatewaySyncTests {
|
||||
@Test func decodeGatewayTriggersFromJSONSanitizes() {
|
||||
let payload = #"{"triggers":[" clawd ","", "computer"]}"#
|
||||
let triggers = VoiceWakePreferences.decodeGatewayTriggers(from: payload)
|
||||
#expect(triggers == ["clawd", "computer"])
|
||||
}
|
||||
|
||||
@Test func decodeGatewayTriggersFromJSONFallsBackWhenEmpty() {
|
||||
let payload = #"{"triggers":[" ",""]}"#
|
||||
let triggers = VoiceWakePreferences.decodeGatewayTriggers(from: payload)
|
||||
#expect(triggers == VoiceWakePreferences.defaultTriggerWords)
|
||||
}
|
||||
|
||||
@Test func decodeGatewayTriggersFromInvalidJSONReturnsNil() {
|
||||
let triggers = VoiceWakePreferences.decodeGatewayTriggers(from: "not json")
|
||||
#expect(triggers == nil)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user