83 lines
2.5 KiB
Swift
83 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() {
|
|
// Start with default
|
|
XCTAssertTrue(testEnv.settingsManager.settings.postureEnabled)
|
|
XCTAssertEqual(testEnv.settingsManager.settings.postureIntervalMinutes, 30)
|
|
|
|
// Modify configuration
|
|
testEnv.settingsManager.settings.postureEnabled = true
|
|
testEnv.settingsManager.settings.postureIntervalMinutes = 45
|
|
|
|
// Verify changes
|
|
XCTAssertTrue(testEnv.settingsManager.settings.postureEnabled)
|
|
XCTAssertEqual(testEnv.settingsManager.settings.postureIntervalMinutes, 45)
|
|
}
|
|
|
|
func testPostureTimerEnableDisable() {
|
|
var config = testEnv.settingsManager.settings
|
|
|
|
// Enable
|
|
config.postureEnabled = true
|
|
config.postureIntervalMinutes = 25
|
|
testEnv.settingsManager.settings = config
|
|
XCTAssertTrue(testEnv.settingsManager.settings.postureEnabled)
|
|
|
|
// Disable
|
|
config.postureEnabled = false
|
|
config.postureIntervalMinutes = 20
|
|
testEnv.settingsManager.settings = config
|
|
XCTAssertFalse(testEnv.settingsManager.settings.postureEnabled)
|
|
}
|
|
|
|
func testPostureIntervalValidation() {
|
|
var config = testEnv.settingsManager.settings
|
|
|
|
// Test various intervals (in minutes)
|
|
let intervals = [15, 20, 30, 45, 60]
|
|
for minutes in intervals {
|
|
config.postureEnabled = true
|
|
config.postureIntervalMinutes = minutes
|
|
testEnv.settingsManager.settings = config
|
|
|
|
let retrieved = testEnv.settingsManager.settings
|
|
XCTAssertEqual(retrieved.postureIntervalMinutes, minutes)
|
|
}
|
|
}
|
|
|
|
func testPostureAccessibilityIdentifier() {
|
|
XCTAssertEqual(
|
|
AccessibilityIdentifiers.Onboarding.posturePage,
|
|
"onboarding.page.posture"
|
|
)
|
|
}
|
|
}
|