迁移合作订单完整能力,并统一 AppRoleCode 角色权限与首页菜单展示。
新增 CooperationOrder 模块(双 Tab 列表、获客员绑定、主 Tab 扫码)、订单来源/带客单绑定及配套 API 测试;同步引入 roleCode 权限匹配与相关单元测试。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
42
suixinkanTests/SaleUserQrParserTests.swift
Normal file
42
suixinkanTests/SaleUserQrParserTests.swift
Normal file
@ -0,0 +1,42 @@
|
||||
//
|
||||
// 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"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user