mirror of
https://github.com/hanzoai/bot.git
synced 2026-11-01 07:38:30 +00:00
Automated rebrand of all openclaw references to hanzo bot: - Package: openclaw -> @hanzo/bot - Binary: openclaw -> hanzo-bot - Config: ~/.openclaw -> ~/.hanzo/bot - Docker: ghcr.io/hanzoai/bot - Env vars: OPENCLAW_* -> BOT_* - Bundle IDs: ai.hanzo.bot.* - Product name: Hanzo Bot
76 lines
2.4 KiB
Swift
76 lines
2.4 KiB
Swift
import Foundation
|
|
import Hanzo BotKit
|
|
import Testing
|
|
|
|
private let iOSSilenceTimeoutMs = 900
|
|
|
|
@Suite struct TalkConfigParsingTests {
|
|
@Test func rejectsNormalizedTalkProviderPayloadWithoutResolved() {
|
|
let talk: [String: Any] = [
|
|
"provider": "elevenlabs",
|
|
"providers": [
|
|
"elevenlabs": [
|
|
"voiceId": "voice-normalized",
|
|
],
|
|
],
|
|
"voiceId": "voice-legacy",
|
|
]
|
|
|
|
let selection = TalkConfigParsing.selectProviderConfig(
|
|
TalkConfigParsing.bridgeFoundationDictionary(talk),
|
|
defaultProvider: "elevenlabs",
|
|
allowLegacyFallback: false)
|
|
#expect(selection == nil)
|
|
}
|
|
|
|
@Test func ignoresLegacyTalkFieldsWhenNormalizedPayloadMissing() {
|
|
let talk: [String: Any] = [
|
|
"voiceId": "voice-legacy",
|
|
"apiKey": "legacy-key", // pragma: allowlist secret
|
|
]
|
|
|
|
let selection = TalkConfigParsing.selectProviderConfig(
|
|
TalkConfigParsing.bridgeFoundationDictionary(talk),
|
|
defaultProvider: "elevenlabs",
|
|
allowLegacyFallback: false)
|
|
#expect(selection == nil)
|
|
}
|
|
|
|
@Test func readsConfiguredSilenceTimeoutMs() {
|
|
let talk: [String: Any] = [
|
|
"silenceTimeoutMs": 1500,
|
|
]
|
|
|
|
#expect(
|
|
TalkConfigParsing.resolvedSilenceTimeoutMs(
|
|
TalkConfigParsing.bridgeFoundationDictionary(talk),
|
|
fallback: iOSSilenceTimeoutMs) == 1500)
|
|
}
|
|
|
|
@Test func defaultsSilenceTimeoutMsWhenMissing() {
|
|
#expect(TalkConfigParsing.resolvedSilenceTimeoutMs(nil, fallback: iOSSilenceTimeoutMs) == iOSSilenceTimeoutMs)
|
|
}
|
|
|
|
@Test func defaultsSilenceTimeoutMsWhenInvalid() {
|
|
let talk: [String: Any] = [
|
|
"silenceTimeoutMs": 0,
|
|
]
|
|
|
|
#expect(
|
|
TalkConfigParsing.resolvedSilenceTimeoutMs(
|
|
TalkConfigParsing.bridgeFoundationDictionary(talk),
|
|
fallback: iOSSilenceTimeoutMs) == iOSSilenceTimeoutMs)
|
|
}
|
|
|
|
@Test func defaultsSilenceTimeoutMsWhenBool() {
|
|
let talk: [String: Any] = [
|
|
"silenceTimeoutMs": true,
|
|
]
|
|
|
|
#expect(
|
|
TalkConfigParsing.resolvedSilenceTimeoutMs(
|
|
TalkConfigParsing.bridgeFoundationDictionary(talk),
|
|
fallback: iOSSilenceTimeoutMs) == iOSSilenceTimeoutMs)
|
|
}
|
|
}
|