新增 CooperationOrder 模块(双 Tab 列表、获客员绑定、主 Tab 扫码)、订单来源/带客单绑定及配套 API 测试;同步引入 roleCode 权限匹配与相关单元测试。 Co-authored-by: Cursor <cursoragent@cursor.com>
43 lines
1.3 KiB
Swift
43 lines
1.3 KiB
Swift
//
|
|
// SaleUserQrParserTests.swift
|
|
// suixinkanTests
|
|
//
|
|
// Created by Codex on 2026/6/29.
|
|
//
|
|
|
|
import XCTest
|
|
@testable import suixinkan
|
|
|
|
final class SaleUserQrParserTests: XCTestCase {
|
|
/// 测试纯数字二维码解析。
|
|
func testParsePlainNumber() {
|
|
XCTAssertEqual(SaleUserQrParser.parseSaleUserId("12345"), 12345)
|
|
}
|
|
|
|
/// 测试历史 JSON 格式解析。
|
|
func testParseLegacyJSONWithoutMethod() {
|
|
let json = #"{"sale_user_id":88}"#
|
|
XCTAssertEqual(SaleUserQrParser.parseSaleUserId(json), 88)
|
|
}
|
|
|
|
/// 测试标准 sale_user_bind 二维码。
|
|
func testParseStandardSaleUserBindQR() {
|
|
let json = #"{"method":"sale_user_bind","sale_user_id":2}"#
|
|
XCTAssertEqual(SaleUserQrParser.parseSaleUserId(json), 2)
|
|
XCTAssertTrue(SaleUserQrParser.isSaleUserBindQR(json))
|
|
}
|
|
|
|
/// 测试 URL query 中的 sale_user_id。
|
|
func testParseFromURLQuery() {
|
|
let url = "https://example.com/bind?sale_user_id=99"
|
|
XCTAssertEqual(SaleUserQrParser.parseSaleUserId(url), 99)
|
|
}
|
|
|
|
/// 测试无效内容返回 nil。
|
|
func testParseInvalidContentReturnsNil() {
|
|
XCTAssertNil(SaleUserQrParser.parseSaleUserId("not-a-code"))
|
|
XCTAssertNil(SaleUserQrParser.parseSaleUserId(""))
|
|
XCTAssertFalse(SaleUserQrParser.isSaleUserBindQR("12345"))
|
|
}
|
|
}
|