39 lines
1.2 KiB
Swift
39 lines
1.2 KiB
Swift
import Foundation
|
|
import XCTest
|
|
@testable import TranslatorPlugin
|
|
|
|
final class TranslationPromptRendererTests: XCTestCase {
|
|
func testRendersAllPlaceholdersExactly() throws {
|
|
let renderer = TranslationPromptRenderer(
|
|
template: "Source={{source_language}}\nTarget={{target_language}}\nText={{text}}"
|
|
)
|
|
|
|
let prompt = try renderer.render(
|
|
text: "Hello {{target_language}}",
|
|
sourceLanguageName: "English",
|
|
targetLanguageName: "Simplified Chinese"
|
|
)
|
|
|
|
XCTAssertEqual(
|
|
prompt,
|
|
"Source=English\nTarget=Simplified Chinese\nText=Hello {{target_language}}"
|
|
)
|
|
}
|
|
|
|
func testMissingTextPlaceholderThrowsLocalizedMessage() {
|
|
let renderer = TranslationPromptRenderer(
|
|
template: "Source={{source_language}}\nTarget={{target_language}}"
|
|
)
|
|
|
|
XCTAssertThrowsError(
|
|
try renderer.render(
|
|
text: "Hello",
|
|
sourceLanguageName: "English",
|
|
targetLanguageName: "Simplified Chinese"
|
|
)
|
|
) { error in
|
|
XCTAssertEqual(error.localizedDescription, "提示词必须包含 {{text}}。")
|
|
}
|
|
}
|
|
}
|