Files
suixinkan_uikit/suixinkanTests/CooperationOrderModelsTests.swift

69 lines
2.2 KiB
Swift

//
// CooperationOrderModelsTests.swift
// suixinkanTests
//
import XCTest
@testable import suixinkan
///
final class CooperationOrderModelsTests: XCTestCase {
func testRemarkNameValidationAllowsTenCharacters() {
XCTAssertNil(CooperationOrderFeature.remarkNameValidationMessage("1234567890"))
}
func testRemarkNameValidationRejectsOverTenCharacters() {
XCTAssertEqual(
CooperationOrderFeature.remarkNameValidationMessage("12345678901"),
"备注名不能超过10个字符"
)
}
func testReferralLeadDisplayFields() throws {
let json = """
{
"id": 1,
"lead_id": 9,
"display_name": "",
"user_mobile_masked": "138****0000",
"remark": "",
"created_at": "2026-01-01",
"image_urls": ["https://img/1.jpg"]
}
""".data(using: .utf8)!
let lead = try JSONDecoder().decode(ReferralLeadEntity.self, from: json)
XCTAssertEqual(lead.displayId, "9")
XCTAssertEqual(lead.displayPhone, "138****0000")
XCTAssertEqual(lead.displaySalerName, "")
XCTAssertEqual(lead.displayImages, ["https://img/1.jpg"])
}
func testAcquisitionOrderDisplayFields() throws {
let json = """
{
"project_name": "",
"order_type_label": "",
"order_number": "NO001",
"photog_remark_name": "",
"sale_user_name": "",
"created_at": "2026-01-02",
"user_mobile_masked": "139****1111",
"order_amount": "99.00"
}
""".data(using: .utf8)!
let order = try JSONDecoder().decode(AcquisitionOrderEntity.self, from: json)
XCTAssertEqual(order.displayPartner, "备注名")
XCTAssertEqual(order.displayCustomerPhone, "139****1111")
XCTAssertEqual(order.displayAmount, "99.00")
}
func testCooperativeSalerDisplayCommissionRateUsesLabelFirst() {
let entity = CooperativeSalerEntity(
commissionRate: 10,
commissionRateLabel: "10%(固定)"
)
XCTAssertEqual(entity.displayCommissionRate, "10%(固定)")
}
}