mirror of
https://github.com/xweiba/location-spoofer.git
synced 2026-09-21 22:30:46 +08:00
83 lines
2.6 KiB
Swift
83 lines
2.6 KiB
Swift
import XCTest
|
|
@testable import PaopaoLocationSpoofer
|
|
|
|
@MainActor
|
|
final class SetupCoordinatorTests: XCTestCase {
|
|
func testSuccessfulVerificationDismissesSetup() {
|
|
let coordinator = SetupCoordinator()
|
|
coordinator.requestSetup()
|
|
|
|
coordinator.applyVerificationResult(.success)
|
|
|
|
XCTAssertEqual(coordinator.trustState, .trusted)
|
|
XCTAssertFalse(coordinator.needsSetup)
|
|
}
|
|
|
|
func testCertificateFailureRoutesDirectlyToCertificateStep() {
|
|
let coordinator = SetupCoordinator()
|
|
|
|
coordinator.applyVerificationResult(.certNotTrusted)
|
|
|
|
XCTAssertEqual(coordinator.trustState, .unavailable)
|
|
XCTAssertTrue(coordinator.needsSetup)
|
|
XCTAssertEqual(coordinator.setupStep, .cert)
|
|
}
|
|
|
|
func testProxyFailureRoutesBackToProxyStep() {
|
|
let coordinator = SetupCoordinator()
|
|
coordinator.applyVerificationResult(.certNotTrusted)
|
|
|
|
coordinator.applyVerificationResult(.wifiProxyNotConfigured)
|
|
|
|
XCTAssertTrue(coordinator.needsSetup)
|
|
XCTAssertEqual(coordinator.setupStep, .proxy)
|
|
}
|
|
|
|
func testExplicitCertificateRequestRoutesToCertificateStep() {
|
|
let coordinator = SetupCoordinator()
|
|
|
|
coordinator.requestCertificateSetup()
|
|
|
|
XCTAssertTrue(coordinator.needsSetup)
|
|
XCTAssertEqual(coordinator.setupStep, .cert)
|
|
}
|
|
|
|
func testThirdPartyFailureRequestPreservesErrorAndRoutesToImportGuide() {
|
|
let coordinator = SetupCoordinator()
|
|
|
|
coordinator.requestThirdPartySetup(message: "模块未连接")
|
|
|
|
XCTAssertTrue(coordinator.needsSetup)
|
|
XCTAssertEqual(coordinator.setupStep, .thirdPartyImport)
|
|
XCTAssertEqual(coordinator.message, "模块未连接")
|
|
}
|
|
|
|
func testThirdPartyOnboardingStartsWithClientSelection() {
|
|
let coordinator = SetupCoordinator()
|
|
|
|
coordinator.requestThirdPartyOnboarding()
|
|
|
|
XCTAssertTrue(coordinator.needsSetup)
|
|
XCTAssertEqual(coordinator.setupStep, .thirdPartyClient)
|
|
XCTAssertTrue(coordinator.message.isEmpty)
|
|
}
|
|
|
|
func testProxyFailurePreservesResultForPresentedGuide() {
|
|
let coordinator = SetupCoordinator()
|
|
|
|
coordinator.applyVerificationResult(.proxyNotRunning)
|
|
|
|
XCTAssertEqual(coordinator.lastVerificationResult, .proxyNotRunning)
|
|
XCTAssertTrue(coordinator.needsSetup)
|
|
XCTAssertEqual(coordinator.setupStep, .proxy)
|
|
}
|
|
|
|
func testConcurrentVerificationDoesNotOpenGuide() {
|
|
let coordinator = SetupCoordinator()
|
|
|
|
coordinator.applyVerificationResult(.verificationInProgress)
|
|
|
|
XCTAssertFalse(coordinator.needsSetup)
|
|
}
|
|
}
|