ContactDraftMergeTest.swift 31 lignes · 1130 octets
import XCTest
@testable import Card2vcf

final class ContactDraftMergeTest: XCTestCase {
    func testFusionneRegexEtLlm() {
        let llm = ContactCard(fullName: "Jean Dupont", phones: ["0612345678"])
        let ocr = OcrResult(
            rawText: "Jean Dupont\n0612345678\njean@acme.fr",
            phones: ["0612345678", "0145678901"],
            emails: ["jean@acme.fr"],
            urls: ["https://acme.fr"]
        )
        let merged = ContactDraftMerge.merge(llm: llm, ocr: ocr)
        XCTAssertEqual("Jean Dupont", merged.fullName)
        XCTAssertEqual(["0612345678", "0145678901"], merged.phones)
        XCTAssertEqual(["jean@acme.fr"], merged.emails)
        XCTAssertEqual("https://acme.fr", merged.website)
    }

    func testFallbackRegexSiLlmNull() {
        let ocr = OcrResult(
            rawText: "x",
            phones: ["0611111111"],
            emails: ["a@b.fr"],
            urls: ["https://x.fr"]
        )
        let merged = ContactDraftMerge.merge(llm: nil, ocr: ocr)
        XCTAssertEqual(["0611111111"], merged.phones)
        XCTAssertEqual("https://x.fr", merged.website)
    }
}