import SwiftUI
import Testing
@testable import WebTerm

/// T-iPad-2 · 自适应根视图的唯一 size-class 决策点（仿 `PrivacyShadePolicy`
/// 的纯谓词先例）。regular 宽度 → 分栏（sidebar+detail）；compact/未知 →
/// 现有 iPhone stack 路径。这是**唯一**判据 —— 视图里严禁散落
/// `if sizeClass == …`（PLAN_IOS_IPAD §4）。
///
/// 覆盖 `UserInterfaceSizeClass` 的三种可能取值（.regular / .compact / nil），
/// 后者是「size class 尚未确定」的最保守回退：退到现有已测路径。
@Suite("LayoutPolicy (T-iPad-2)")
struct LayoutPolicyTests {
    @Test("regular 宽度 → split（iPad 全屏/大分屏：sidebar + detail）")
    func regularIsSplit() {
        #expect(LayoutPolicy.mode(horizontalSizeClass: .regular) == .split)
    }

    @Test("compact 宽度 → stack（iPhone / iPad Slide Over：字节级复用现有路径）")
    func compactIsStack() {
        #expect(LayoutPolicy.mode(horizontalSizeClass: .compact) == .stack)
    }

    @Test("nil（size class 未定）→ stack（最保守：退现有 iPhone 路径）")
    func nilIsStack() {
        #expect(LayoutPolicy.mode(horizontalSizeClass: nil) == .stack)
    }
}
