//
//  RootViewDisplayStateTests.swift
//  suixinkanTests
//
//  Created by Codex on 2026/7/3.
//

import XCTest
@testable import suixinkan

/// 根视图展示状态测试，覆盖冷启动门禁与登录阶段的映射关系。
final class RootViewDisplayStateTests: XCTestCase {
    /// 测试冷启动 bootstrap 未完成时不会提前创建登录页。
    func testBootstrapPendingLoggedOutUsesPlaceholder() {
        let state = RootContentDisplayState.resolve(
            isColdStartBootstrapPending: true,
            appPhase: .loggedOut
        )

        XCTAssertEqual(state, .bootstrapPlaceholder)
    }

    /// 测试 bootstrap 完成且未登录时展示登录页。
    func testBootstrapCompletedLoggedOutShowsLogin() {
        let state = RootContentDisplayState.resolve(
            isColdStartBootstrapPending: false,
            appPhase: .loggedOut
        )

        XCTAssertEqual(state, .login)
    }

    /// 测试 bootstrap 完成且已登录时展示主 Tab。
    func testBootstrapCompletedLoggedInShowsMainTabs() {
        let state = RootContentDisplayState.resolve(
            isColdStartBootstrapPending: false,
            appPhase: .loggedIn
        )

        XCTAssertEqual(state, .mainTabs)
    }
}
