This commit is contained in:
Michael Freno
2026-01-29 08:47:23 -05:00
parent b89a6c3ac4
commit a61d73753e
38 changed files with 1020 additions and 783 deletions

View File

@@ -29,40 +29,47 @@ final class PostureSetupViewTests: XCTestCase {
}
func testPostureTimerConfigurationChanges() {
let initial = testEnv.settingsManager.timerConfiguration(for: .posture)
// Start with default
XCTAssertTrue(testEnv.settingsManager.settings.postureEnabled)
XCTAssertEqual(testEnv.settingsManager.settings.postureIntervalMinutes, 30)
var modified = initial
modified.enabled = true
modified.intervalSeconds = 1800
testEnv.settingsManager.updateTimerConfiguration(for: .posture, configuration: modified)
// Modify configuration
testEnv.settingsManager.settings.postureEnabled = true
testEnv.settingsManager.settings.postureIntervalMinutes = 45
let updated = testEnv.settingsManager.timerConfiguration(for: .posture)
XCTAssertTrue(updated.enabled)
XCTAssertEqual(updated.intervalSeconds, 1800)
// Verify changes
XCTAssertTrue(testEnv.settingsManager.settings.postureEnabled)
XCTAssertEqual(testEnv.settingsManager.settings.postureIntervalMinutes, 45)
}
func testPostureTimerEnableDisable() {
var config = testEnv.settingsManager.timerConfiguration(for: .posture)
var config = testEnv.settingsManager.settings
config.enabled = true
testEnv.settingsManager.updateTimerConfiguration(for: .posture, configuration: config)
XCTAssertTrue(testEnv.settingsManager.timerConfiguration(for: .posture).enabled)
// Enable
config.postureEnabled = true
config.postureIntervalMinutes = 25
testEnv.settingsManager.settings = config
XCTAssertTrue(testEnv.settingsManager.settings.postureEnabled)
config.enabled = false
testEnv.settingsManager.updateTimerConfiguration(for: .posture, configuration: config)
XCTAssertFalse(testEnv.settingsManager.timerConfiguration(for: .posture).enabled)
// Disable
config.postureEnabled = false
config.postureIntervalMinutes = 20
testEnv.settingsManager.settings = config
XCTAssertFalse(testEnv.settingsManager.settings.postureEnabled)
}
func testPostureIntervalValidation() {
var config = testEnv.settingsManager.timerConfiguration(for: .posture)
var config = testEnv.settingsManager.settings
let intervals = [900, 1200, 1800, 2400, 3600]
for interval in intervals {
config.intervalSeconds = interval
testEnv.settingsManager.updateTimerConfiguration(for: .posture, configuration: config)
// 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.timerConfiguration(for: .posture)
XCTAssertEqual(retrieved.intervalSeconds, interval)
let retrieved = testEnv.settingsManager.settings
XCTAssertEqual(retrieved.postureIntervalMinutes, minutes)
}
}