//
//  AllDayViewStylesTests.swift
//  Tests iOS
//
//  Exhaustive day view style switching tests — verify all 20 styles render without crash.
//

import XCTest

final class AllDayViewStylesTests: BaseUITestCase {
    override var seedFixture: String? { "single_mood" }
    override var bypassSubscription: Bool { true }

    /// TC-021: Switch between representative day view styles and verify no crash.
    /// Tests a sample of 5 styles (first, middle, last, and edge cases) to verify
    /// stability without exhaustively cycling all 20, which can cause resource pressure.
    func testAllDayViewStyles_NoCrash() {
        let tabBar = TabBarScreen(app: app)
        let customizeScreen = CustomizeScreen(app: app)

        // Representative sample: first, a middle one, last, and two requiring scroll
        let sampleStyles = ["Classic", "Neon", "Glass", "Orbit", "Minimal"]

        for style in sampleStyles {
            // Navigate to Settings > Customize tab
            let settingsScreen = tabBar.tapSettings()
            settingsScreen.assertVisible()
            settingsScreen.tapCustomizeTab()

            customizeScreen.selectDayViewStyle(style)

            // Navigate to Day tab and verify the app didn't crash
            tabBar.tapDay()
            assertDayContentVisible()
        }

        captureScreenshot(name: "all_day_view_styles_completed")
    }
}
