feat: complete translation language controls and styling
This commit is contained in:
@@ -38,6 +38,19 @@ import Testing
|
||||
#expect(translation == "こんにちは")
|
||||
}
|
||||
|
||||
@Test func myMemoryRequestsReversePairAndOnlyUsesMatchingFallback() async throws {
|
||||
let body = #"{"responseStatus":200,"responseData":{"translatedText":""},"matches":[{"segment":"おはよう","translation":"間違い","source":"en","target":"ja"},{"segment":"おはよう","translation":"bonjour","source":"ja","target":"fr"},{"segment":"おはようございます","translation":"Good morning!","source":"ja","target":"en"},{"segment":"おはよう","translation":"Good morning","source":"ja-JP","target":"en-GB"}]}"#
|
||||
let translation = try await MyMemoryAPI.translate(
|
||||
"おはよう", sourceLanguage: "ja", targetLanguage: "en"
|
||||
) { request in
|
||||
let items = try #require(URLComponents(url: request.url!, resolvingAgainstBaseURL: false)?.queryItems)
|
||||
#expect(items.contains(URLQueryItem(name: "q", value: "おはよう")))
|
||||
#expect(items.contains(URLQueryItem(name: "langpair", value: "ja|en")))
|
||||
return (Data(body.utf8), HTTPURLResponse(url: request.url!, statusCode: 200, httpVersion: nil, headerFields: nil)!)
|
||||
}
|
||||
#expect(translation == "Good morning")
|
||||
}
|
||||
|
||||
@Test func myMemoryNeverUsesMatchesToBypassFailureOrReplacePrimaryTranslation() async throws {
|
||||
let matches = #""matches":[{"segment":"hello","translation":"こんにちは","source":"en","target":"ja"}]"#
|
||||
for metadata in [#""responseStatus":403"#, #""responseStatus":200,"quotaFinished":true"#] {
|
||||
|
||||
Reference in New Issue
Block a user