Files
Gaze/GazeTests/Views/LookAwaySetupViewTests.swift
Michael Freno a61d73753e oof
2026-01-29 08:47:23 -05:00

83 lines
2.6 KiB
Swift

//
// LookAwaySetupViewTests.swift
// GazeTests
//
// Tests for LookAwaySetupView component.
//
import SwiftUI
import XCTest
@testable import Gaze
@MainActor
final class LookAwaySetupViewTests: XCTestCase {
var testEnv: TestEnvironment!
override func setUp() async throws {
testEnv = TestEnvironment()
}
override func tearDown() async throws {
testEnv = nil
}
func testLookAwaySetupInitialization() {
// Use real SettingsManager for view initialization test since @Bindable requires concrete type
let view = LookAwaySetupView(settingsManager: SettingsManager.shared)
XCTAssertNotNil(view)
}
func testLookAwayTimerConfigurationChanges() {
// Start with default
XCTAssertTrue(testEnv.settingsManager.settings.lookAwayEnabled)
XCTAssertEqual(testEnv.settingsManager.settings.lookAwayIntervalMinutes, 20)
// Modify configuration
testEnv.settingsManager.settings.lookAwayEnabled = true
testEnv.settingsManager.settings.lookAwayIntervalMinutes = 25
// Verify changes
XCTAssertTrue(testEnv.settingsManager.settings.lookAwayEnabled)
XCTAssertEqual(testEnv.settingsManager.settings.lookAwayIntervalMinutes, 25)
}
func testLookAwayTimerEnableDisable() {
var config = testEnv.settingsManager.settings
// Enable
config.lookAwayEnabled = true
config.lookAwayIntervalMinutes = 15
testEnv.settingsManager.settings = config
XCTAssertTrue(testEnv.settingsManager.settings.lookAwayEnabled)
// Disable
config.lookAwayEnabled = false
config.lookAwayIntervalMinutes = 10
testEnv.settingsManager.settings = config
XCTAssertFalse(testEnv.settingsManager.settings.lookAwayEnabled)
}
func testLookAwayIntervalValidation() {
var config = testEnv.settingsManager.settings
// Test various intervals (in minutes)
let intervals = [5, 10, 20, 30, 60]
for minutes in intervals {
config.lookAwayEnabled = true
config.lookAwayIntervalMinutes = minutes
testEnv.settingsManager.settings = config
let retrieved = testEnv.settingsManager.settings
XCTAssertEqual(retrieved.lookAwayIntervalMinutes, minutes)
}
}
func testLookAwayAccessibilityIdentifier() {
XCTAssertEqual(
AccessibilityIdentifiers.Onboarding.lookAwayPage,
"onboarding.page.lookAway"
)
}
}