Add scenic selection and cooperation order flows aligned with Android.
Upgrade scenic picker with search, location sorting, permission apply/status, and blocking home dialog; add cooperation order module and order source picker improvements with unit tests. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
68
suixinkanTests/CooperationOrderModelsTests.swift
Normal file
68
suixinkanTests/CooperationOrderModelsTests.swift
Normal file
@ -0,0 +1,68 @@
|
||||
//
|
||||
// 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%(固定)")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user