迁移合作订单完整能力,并统一 AppRoleCode 角色权限与首页菜单展示。

新增 CooperationOrder 模块(双 Tab 列表、获客员绑定、主 Tab 扫码)、订单来源/带客单绑定及配套 API 测试;同步引入 roleCode 权限匹配与相关单元测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-29 13:33:00 +08:00
parent d310d26293
commit 1970572edd
66 changed files with 4247 additions and 201 deletions

View 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"))
}
}