import OpenClawProtocol import Testing @testable import OpenClaw @Suite struct TalkModeConfigParsingTests { @Test func prefersNormalizedTalkProviderPayload() { let talk: [String: AnyCodable] = [ "provider": AnyCodable("elevenlabs"), "providers": AnyCodable([ "elevenlabs": [ "voiceId": "voice-normalized", ], ]), "voiceId": AnyCodable("voice-legacy"), ] let selection = TalkModeRuntime.selectTalkProviderConfig(talk) #expect(selection?.provider == "elevenlabs") #expect(selection?.normalizedPayload == true) #expect(selection?.config["voiceId"]?.stringValue == "voice-normalized") } @Test func fallsBackToLegacyTalkFieldsWhenNormalizedPayloadMissing() { let talk: [String: AnyCodable] = [ "voiceId": AnyCodable("voice-legacy"), "apiKey": AnyCodable("legacy-key"), ] let selection = TalkModeRuntime.selectTalkProviderConfig(talk) #expect(selection?.provider == "elevenlabs") #expect(selection?.normalizedPayload == false) #expect(selection?.config["voiceId"]?.stringValue == "voice-legacy") #expect(selection?.config["apiKey"]?.stringValue == "legacy-key") } }