Spaces:
Sleeping
Sleeping
| import XCTest | |
| @testable import OpenClawKit | |
| final class TalkDirectiveTests: XCTestCase { | |
| func testParsesDirectiveAndStripsLine() { | |
| let text = """ | |
| {"voice":"abc123","once":true} | |
| Hello there. | |
| """ | |
| let result = TalkDirectiveParser.parse(text) | |
| XCTAssertEqual(result.directive?.voiceId, "abc123") | |
| XCTAssertEqual(result.directive?.once, true) | |
| XCTAssertEqual(result.stripped, "Hello there.") | |
| } | |
| func testIgnoresNonDirective() { | |
| let text = "Hello world." | |
| let result = TalkDirectiveParser.parse(text) | |
| XCTAssertNil(result.directive) | |
| XCTAssertEqual(result.stripped, text) | |
| } | |
| func testKeepsDirectiveLineIfNoRecognizedFields() { | |
| let text = """ | |
| {"unknown":"value"} | |
| Hello. | |
| """ | |
| let result = TalkDirectiveParser.parse(text) | |
| XCTAssertNil(result.directive) | |
| XCTAssertEqual(result.stripped, text) | |
| } | |
| func testParsesExtendedOptions() { | |
| let text = """ | |
| {"voice_id":"v1","model_id":"m1","rate":200,"stability":0.5,"similarity":0.8,"style":0.2,"speaker_boost":true,"seed":1234,"normalize":"auto","lang":"en","output_format":"mp3_44100_128"} | |
| Hello. | |
| """ | |
| let result = TalkDirectiveParser.parse(text) | |
| XCTAssertEqual(result.directive?.voiceId, "v1") | |
| XCTAssertEqual(result.directive?.modelId, "m1") | |
| XCTAssertEqual(result.directive?.rateWPM, 200) | |
| XCTAssertEqual(result.directive?.stability, 0.5) | |
| XCTAssertEqual(result.directive?.similarity, 0.8) | |
| XCTAssertEqual(result.directive?.style, 0.2) | |
| XCTAssertEqual(result.directive?.speakerBoost, true) | |
| XCTAssertEqual(result.directive?.seed, 1234) | |
| XCTAssertEqual(result.directive?.normalize, "auto") | |
| XCTAssertEqual(result.directive?.language, "en") | |
| XCTAssertEqual(result.directive?.outputFormat, "mp3_44100_128") | |
| XCTAssertEqual(result.stripped, "Hello.") | |
| } | |
| func testSkipsLeadingEmptyLinesWhenParsingDirective() { | |
| let text = """ | |
| {"voice":"abc123"} | |
| Hello there. | |
| """ | |
| let result = TalkDirectiveParser.parse(text) | |
| XCTAssertEqual(result.directive?.voiceId, "abc123") | |
| XCTAssertEqual(result.stripped, "Hello there.") | |
| } | |
| func testTracksUnknownKeys() { | |
| let text = """ | |
| {"voice":"abc","mystery":"value","extra":1} | |
| Hi. | |
| """ | |
| let result = TalkDirectiveParser.parse(text) | |
| XCTAssertEqual(result.directive?.voiceId, "abc") | |
| XCTAssertEqual(result.unknownKeys, ["extra", "mystery"]) | |
| } | |
| } | |