fix: use v9 store status for deregistration login

This commit is contained in:
2026-08-31 16:36:20 +08:00
parent 4444d328df
commit b8343ad9eb
8 changed files with 194 additions and 11 deletions
@@ -83,8 +83,24 @@ final class StoreAccountDeregistrationRootTests: XCTestCase {
XCTAssertEqual(context.resumeCount, 1)
}
/// 新登录得到身份凭证后仍先核验,普通页面前台恢复不追加查询。
func testLoginChecksStatusBeforeEnteringBusiness() async {
/// 新登录只以 v9 的门店 status 判定;旧注销状态接口和本地未决记录都不能再拦截 status 为正常的登录。
func testNormalLoginRestoresBusinessWithoutLegacyDeregistrationCheck() async {
let context = DeregistrationRootContext()
defer { context.cleanUp() }
context.service.readError = APIError.networkFailed("旧注销查询不应影响 v9 正常登录")
context.startRestoringSession()
XCTAssertNil(context.coordinator.accessController)
XCTAssertFalse(context.coordinator.isChecking)
XCTAssertFalse(GlobalLoadingManager.shared.isShowing)
XCTAssertFalse(context.bindingSuspended)
XCTAssertEqual(context.createdRoots, 1)
XCTAssertEqual(context.resumeCount, 1)
XCTAssertEqual(context.service.statusCount, 0)
}
/// 旧核验入口仅在业务限制等已知受限事件发生时使用,不是正常登录路径的一部分。
func testExplicitRestrictionCheckStillKeepsOriginalPageUntilResult() async {
let context = DeregistrationRootContext()
defer { context.cleanUp() }
context.service.holdNextRead = true