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,41 @@ final class BlinkSetupViewTests: XCTestCase {
}
func testBlinkTimerConfigurationChanges() {
let initial = testEnv.settingsManager.timerConfiguration(for: .blink)
XCTAssertFalse(testEnv.settingsManager.settings.blinkEnabled)
XCTAssertEqual(testEnv.settingsManager.settings.blinkIntervalMinutes, 7)
var modified = initial
modified.enabled = true
modified.intervalSeconds = 300
testEnv.settingsManager.updateTimerConfiguration(for: .blink, configuration: modified)
testEnv.settingsManager.settings.blinkEnabled = true
testEnv.settingsManager.settings.blinkIntervalMinutes = 5
let updated = testEnv.settingsManager.timerConfiguration(for: .blink)
XCTAssertTrue(updated.enabled)
XCTAssertEqual(updated.intervalSeconds, 300)
XCTAssertTrue(testEnv.settingsManager.settings.blinkEnabled)
XCTAssertEqual(testEnv.settingsManager.settings.blinkIntervalMinutes, 5)
}
func testBlinkTimerEnableDisable() {
var config = testEnv.settingsManager.timerConfiguration(for: .blink)
var config = testEnv.settingsManager.settings
config.enabled = true
testEnv.settingsManager.updateTimerConfiguration(for: .blink, configuration: config)
XCTAssertTrue(testEnv.settingsManager.timerConfiguration(for: .blink).enabled)
config.blinkEnabled = true
config.blinkIntervalMinutes = 4
testEnv.settingsManager.settings = config
XCTAssertTrue(testEnv.settingsManager.settings.blinkEnabled)
config.enabled = false
testEnv.settingsManager.updateTimerConfiguration(for: .blink, configuration: config)
XCTAssertFalse(testEnv.settingsManager.timerConfiguration(for: .blink).enabled)
config.blinkEnabled = false
config.blinkIntervalMinutes = 3
testEnv.settingsManager.settings = config
XCTAssertFalse(testEnv.settingsManager.settings.blinkEnabled)
}
func testBlinkIntervalValidation() {
var config = testEnv.settingsManager.timerConfiguration(for: .blink)
var config = testEnv.settingsManager.settings
let intervals = [180, 240, 300, 360, 600]
for interval in intervals {
config.intervalSeconds = interval
testEnv.settingsManager.updateTimerConfiguration(for: .blink, configuration: config)
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.timerConfiguration(for: .blink)
XCTAssertEqual(retrieved.intervalSeconds, interval)
let retrieved = testEnv.settingsManager.settings
XCTAssertEqual(retrieved.blinkIntervalMinutes, minutes)
}
}

View File

@@ -30,45 +30,46 @@ final class LookAwaySetupViewTests: XCTestCase {
func testLookAwayTimerConfigurationChanges() {
// Start with default
let initial = testEnv.settingsManager.timerConfiguration(for: .lookAway)
XCTAssertTrue(testEnv.settingsManager.settings.lookAwayEnabled)
XCTAssertEqual(testEnv.settingsManager.settings.lookAwayIntervalMinutes, 20)
// Modify configuration
var modified = initial
modified.enabled = true
modified.intervalSeconds = 1500
testEnv.settingsManager.updateTimerConfiguration(for: .lookAway, configuration: modified)
testEnv.settingsManager.settings.lookAwayEnabled = true
testEnv.settingsManager.settings.lookAwayIntervalMinutes = 25
// Verify changes
let updated = testEnv.settingsManager.timerConfiguration(for: .lookAway)
XCTAssertTrue(updated.enabled)
XCTAssertEqual(updated.intervalSeconds, 1500)
XCTAssertTrue(testEnv.settingsManager.settings.lookAwayEnabled)
XCTAssertEqual(testEnv.settingsManager.settings.lookAwayIntervalMinutes, 25)
}
func testLookAwayTimerEnableDisable() {
var config = testEnv.settingsManager.timerConfiguration(for: .lookAway)
var config = testEnv.settingsManager.settings
// Enable
config.enabled = true
testEnv.settingsManager.updateTimerConfiguration(for: .lookAway, configuration: config)
XCTAssertTrue(testEnv.settingsManager.timerConfiguration(for: .lookAway).enabled)
config.lookAwayEnabled = true
config.lookAwayIntervalMinutes = 15
testEnv.settingsManager.settings = config
XCTAssertTrue(testEnv.settingsManager.settings.lookAwayEnabled)
// Disable
config.enabled = false
testEnv.settingsManager.updateTimerConfiguration(for: .lookAway, configuration: config)
XCTAssertFalse(testEnv.settingsManager.timerConfiguration(for: .lookAway).enabled)
config.lookAwayEnabled = false
config.lookAwayIntervalMinutes = 10
testEnv.settingsManager.settings = config
XCTAssertFalse(testEnv.settingsManager.settings.lookAwayEnabled)
}
func testLookAwayIntervalValidation() {
var config = testEnv.settingsManager.timerConfiguration(for: .lookAway)
var config = testEnv.settingsManager.settings
// Test various intervals
let intervals = [300, 600, 1200, 1800, 3600]
for interval in intervals {
config.intervalSeconds = interval
testEnv.settingsManager.updateTimerConfiguration(for: .lookAway, configuration: config)
// 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.timerConfiguration(for: .lookAway)
XCTAssertEqual(retrieved.intervalSeconds, interval)
let retrieved = testEnv.settingsManager.settings
XCTAssertEqual(retrieved.lookAwayIntervalMinutes, minutes)
}
}

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)
}
}