// // GeneralSetupViewTests.swift // GazeTests // // Tests for GeneralSetupView component. // import SwiftUI import XCTest @testable import Gaze @MainActor final class GeneralSetupViewTests: XCTestCase { var testEnv: TestEnvironment! override func setUp() async throws { testEnv = TestEnvironment() } override func tearDown() async throws { testEnv = nil } func testGeneralSetupInitialization() { // Use real SettingsManager for view initialization test since @Bindable requires concrete type let view = GeneralSetupView(settingsManager: SettingsManager.shared, isOnboarding: true) XCTAssertNotNil(view) } func testPlaySoundsToggle() { // Initial state let initial = testEnv.settingsManager.settings.playSounds // Toggle on testEnv.settingsManager.settings.playSounds = true XCTAssertTrue(testEnv.settingsManager.settings.playSounds) // Toggle off testEnv.settingsManager.settings.playSounds = false XCTAssertFalse(testEnv.settingsManager.settings.playSounds) } func testLaunchAtLoginToggle() { // Toggle on testEnv.settingsManager.settings.launchAtLogin = true XCTAssertTrue(testEnv.settingsManager.settings.launchAtLogin) // Toggle off testEnv.settingsManager.settings.launchAtLogin = false XCTAssertFalse(testEnv.settingsManager.settings.launchAtLogin) } func testMultipleSettingsConfiguration() { testEnv.settingsManager.settings.playSounds = true testEnv.settingsManager.settings.launchAtLogin = true XCTAssertTrue(testEnv.settingsManager.settings.playSounds) XCTAssertTrue(testEnv.settingsManager.settings.launchAtLogin) testEnv.settingsManager.settings.playSounds = false XCTAssertFalse(testEnv.settingsManager.settings.playSounds) XCTAssertTrue(testEnv.settingsManager.settings.launchAtLogin) } func testGeneralAccessibilityIdentifier() { XCTAssertEqual( AccessibilityIdentifiers.Onboarding.generalPage, "onboarding.page.general" ) } }