77 lines
2.3 KiB
Swift
77 lines
2.3 KiB
Swift
//
|
|
// BlinkSetupViewTests.swift
|
|
// GazeTests
|
|
//
|
|
// Tests for BlinkSetupView component.
|
|
//
|
|
|
|
import SwiftUI
|
|
import XCTest
|
|
@testable import Gaze
|
|
|
|
@MainActor
|
|
final class BlinkSetupViewTests: XCTestCase {
|
|
|
|
var testEnv: TestEnvironment!
|
|
|
|
override func setUp() async throws {
|
|
testEnv = TestEnvironment()
|
|
}
|
|
|
|
override func tearDown() async throws {
|
|
testEnv = nil
|
|
}
|
|
|
|
func testBlinkSetupInitialization() {
|
|
// Use real SettingsManager for view initialization test since @Bindable requires concrete type
|
|
let view = BlinkSetupView(settingsManager: SettingsManager.shared)
|
|
XCTAssertNotNil(view)
|
|
}
|
|
|
|
func testBlinkTimerConfigurationChanges() {
|
|
XCTAssertFalse(testEnv.settingsManager.settings.blinkEnabled)
|
|
XCTAssertEqual(testEnv.settingsManager.settings.blinkIntervalMinutes, 7)
|
|
|
|
testEnv.settingsManager.settings.blinkEnabled = true
|
|
testEnv.settingsManager.settings.blinkIntervalMinutes = 5
|
|
|
|
XCTAssertTrue(testEnv.settingsManager.settings.blinkEnabled)
|
|
XCTAssertEqual(testEnv.settingsManager.settings.blinkIntervalMinutes, 5)
|
|
}
|
|
|
|
func testBlinkTimerEnableDisable() {
|
|
var config = testEnv.settingsManager.settings
|
|
|
|
config.blinkEnabled = true
|
|
config.blinkIntervalMinutes = 4
|
|
testEnv.settingsManager.settings = config
|
|
XCTAssertTrue(testEnv.settingsManager.settings.blinkEnabled)
|
|
|
|
config.blinkEnabled = false
|
|
config.blinkIntervalMinutes = 3
|
|
testEnv.settingsManager.settings = config
|
|
XCTAssertFalse(testEnv.settingsManager.settings.blinkEnabled)
|
|
}
|
|
|
|
func testBlinkIntervalValidation() {
|
|
var config = testEnv.settingsManager.settings
|
|
|
|
let intervals = [3, 4, 5, 6, 10]
|
|
for minutes in intervals {
|
|
config.blinkEnabled = true
|
|
config.blinkIntervalMinutes = minutes
|
|
testEnv.settingsManager.settings = config
|
|
|
|
let retrieved = testEnv.settingsManager.settings
|
|
XCTAssertEqual(retrieved.blinkIntervalMinutes, minutes)
|
|
}
|
|
}
|
|
|
|
func testBlinkAccessibilityIdentifier() {
|
|
XCTAssertEqual(
|
|
AccessibilityIdentifiers.Onboarding.blinkPage,
|
|
"onboarding.page.blink"
|
|
)
|
|
}
|
|
}
|