76 lines
2.5 KiB
Swift
76 lines
2.5 KiB
Swift
//
|
|
// PostureSetupViewTests.swift
|
|
// GazeTests
|
|
//
|
|
// Tests for PostureSetupView component.
|
|
//
|
|
|
|
import SwiftUI
|
|
import XCTest
|
|
@testable import Gaze
|
|
|
|
@MainActor
|
|
final class PostureSetupViewTests: XCTestCase {
|
|
|
|
var testEnv: TestEnvironment!
|
|
|
|
override func setUp() async throws {
|
|
testEnv = TestEnvironment()
|
|
}
|
|
|
|
override func tearDown() async throws {
|
|
testEnv = nil
|
|
}
|
|
|
|
func testPostureSetupInitialization() {
|
|
// Use real SettingsManager for view initialization test since @Bindable requires concrete type
|
|
let view = PostureSetupView(settingsManager: SettingsManager.shared)
|
|
XCTAssertNotNil(view)
|
|
}
|
|
|
|
func testPostureTimerConfigurationChanges() {
|
|
let initial = testEnv.settingsManager.timerConfiguration(for: .posture)
|
|
|
|
var modified = initial
|
|
modified.enabled = true
|
|
modified.intervalSeconds = 1800
|
|
testEnv.settingsManager.updateTimerConfiguration(for: .posture, configuration: modified)
|
|
|
|
let updated = testEnv.settingsManager.timerConfiguration(for: .posture)
|
|
XCTAssertTrue(updated.enabled)
|
|
XCTAssertEqual(updated.intervalSeconds, 1800)
|
|
}
|
|
|
|
func testPostureTimerEnableDisable() {
|
|
var config = testEnv.settingsManager.timerConfiguration(for: .posture)
|
|
|
|
config.enabled = true
|
|
testEnv.settingsManager.updateTimerConfiguration(for: .posture, configuration: config)
|
|
XCTAssertTrue(testEnv.settingsManager.timerConfiguration(for: .posture).enabled)
|
|
|
|
config.enabled = false
|
|
testEnv.settingsManager.updateTimerConfiguration(for: .posture, configuration: config)
|
|
XCTAssertFalse(testEnv.settingsManager.timerConfiguration(for: .posture).enabled)
|
|
}
|
|
|
|
func testPostureIntervalValidation() {
|
|
var config = testEnv.settingsManager.timerConfiguration(for: .posture)
|
|
|
|
let intervals = [900, 1200, 1800, 2400, 3600]
|
|
for interval in intervals {
|
|
config.intervalSeconds = interval
|
|
testEnv.settingsManager.updateTimerConfiguration(for: .posture, configuration: config)
|
|
|
|
let retrieved = testEnv.settingsManager.timerConfiguration(for: .posture)
|
|
XCTAssertEqual(retrieved.intervalSeconds, interval)
|
|
}
|
|
}
|
|
|
|
func testPostureAccessibilityIdentifier() {
|
|
XCTAssertEqual(
|
|
AccessibilityIdentifiers.Onboarding.posturePage,
|
|
"onboarding.page.posture"
|
|
)
|
|
}
|
|
}
|