修复账号切换后「我的」页当前账号展示错误,并统一举报摄影师首页 URI。

切换账号时以用户选中账号为准写入展示标题与业务作用域,避免沿用旧门店名称;同时将首页举报摄影师入口 URI 对齐为 report_photographer。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-01 17:21:04 +08:00
parent fcb86d43f5
commit 5ab9b1b324
23 changed files with 419 additions and 92 deletions

View File

@ -81,6 +81,69 @@ final class AuthModelsTests: XCTestCase {
XCTAssertEqual(response.primaryProfile?.displayName, "示例门店")
}
/// 使 isCurrent
func testV9AuthResponsePreferredScopeSelectionUsesCurrentStoreAccount() throws {
let scenicJSON = """
{
"account_type": "scenic_user",
"id": 101,
"user_id": 101,
"scenic_user_id": 101,
"ss_user_id": 101,
"username": "scenic_admin",
"real_name": "",
"nickname": "",
"phone": "13800138000",
"scenic_id": 1,
"scenic_name": "",
"is_current": false
}
"""
let storeJSON = """
{
"account_type": "store_user",
"id": 201,
"user_id": 201,
"store_user_id": 201,
"username": "store_admin",
"user_name": "store_admin",
"real_name": "",
"phone": "13800138000",
"avatar": "",
"scenic_id": 2,
"scenic_name": "",
"store_id": 20,
"store_name": "",
"is_current": true
}
"""
let scenicUser = try JSONDecoder().decode(V9ScenicUser.self, from: Data(scenicJSON.utf8))
let storeUser = try JSONDecoder().decode(V9StoreUser.self, from: Data(storeJSON.utf8))
let response = V9AuthResponse(token: "token", scenicUsers: [scenicUser], storeUsers: [storeUser])
XCTAssertEqual(response.currentAccountIdentity?.accountType, V9StoreUser.accountTypeValue)
XCTAssertEqual(response.currentAccountIdentity?.businessUserId, 201)
XCTAssertEqual(response.preferredScopeSelection.scenicId, 2)
XCTAssertEqual(response.preferredScopeSelection.storeId, 20)
let context = AccountContext()
context.replaceScopes(
scenic: [BusinessScope(id: 1, name: "旧景区", kind: .scenic)],
stores: [],
currentScenicId: 1,
currentStoreId: nil
)
context.replaceScopes(
scenic: response.scenicScopes,
stores: response.storeScopes,
currentScenicId: response.preferredScopeSelection.scenicId,
currentStoreId: response.preferredScopeSelection.storeId
)
XCTAssertEqual(context.currentScenic?.id, 2)
XCTAssertEqual(context.currentStore?.id, 20)
}
/// LoginRequest
func testLoginRequestEncodesExpectedDefaults() throws {
let request = LoginRequest(username: "18651857230", password: "secret123")