feat: add lottie for animations
This commit is contained in:
115
GazeTests/Models/ReminderEventTests.swift
Normal file
115
GazeTests/Models/ReminderEventTests.swift
Normal file
@@ -0,0 +1,115 @@
|
||||
//
|
||||
// ReminderEventTests.swift
|
||||
// GazeTests
|
||||
//
|
||||
// Created by Mike Freno on 1/8/26.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import Gaze
|
||||
|
||||
final class ReminderEventTests: XCTestCase {
|
||||
|
||||
func testLookAwayTriggeredCreation() {
|
||||
let event = ReminderEvent.lookAwayTriggered(countdownSeconds: 20)
|
||||
|
||||
if case .lookAwayTriggered(let countdown) = event {
|
||||
XCTAssertEqual(countdown, 20)
|
||||
} else {
|
||||
XCTFail("Expected lookAwayTriggered event")
|
||||
}
|
||||
}
|
||||
|
||||
func testBlinkTriggeredCreation() {
|
||||
let event = ReminderEvent.blinkTriggered
|
||||
|
||||
if case .blinkTriggered = event {
|
||||
XCTAssertTrue(true)
|
||||
} else {
|
||||
XCTFail("Expected blinkTriggered event")
|
||||
}
|
||||
}
|
||||
|
||||
func testPostureTriggeredCreation() {
|
||||
let event = ReminderEvent.postureTriggered
|
||||
|
||||
if case .postureTriggered = event {
|
||||
XCTAssertTrue(true)
|
||||
} else {
|
||||
XCTFail("Expected postureTriggered event")
|
||||
}
|
||||
}
|
||||
|
||||
func testTypePropertyForLookAway() {
|
||||
let event = ReminderEvent.lookAwayTriggered(countdownSeconds: 20)
|
||||
XCTAssertEqual(event.type, .lookAway)
|
||||
}
|
||||
|
||||
func testTypePropertyForBlink() {
|
||||
let event = ReminderEvent.blinkTriggered
|
||||
XCTAssertEqual(event.type, .blink)
|
||||
}
|
||||
|
||||
func testTypePropertyForPosture() {
|
||||
let event = ReminderEvent.postureTriggered
|
||||
XCTAssertEqual(event.type, .posture)
|
||||
}
|
||||
|
||||
func testEquality() {
|
||||
let event1 = ReminderEvent.lookAwayTriggered(countdownSeconds: 20)
|
||||
let event2 = ReminderEvent.lookAwayTriggered(countdownSeconds: 20)
|
||||
let event3 = ReminderEvent.lookAwayTriggered(countdownSeconds: 30)
|
||||
let event4 = ReminderEvent.blinkTriggered
|
||||
let event5 = ReminderEvent.blinkTriggered
|
||||
let event6 = ReminderEvent.postureTriggered
|
||||
|
||||
XCTAssertEqual(event1, event2)
|
||||
XCTAssertNotEqual(event1, event3)
|
||||
XCTAssertNotEqual(event1, event4)
|
||||
XCTAssertEqual(event4, event5)
|
||||
XCTAssertNotEqual(event4, event6)
|
||||
}
|
||||
|
||||
func testDifferentCountdownValues() {
|
||||
let event1 = ReminderEvent.lookAwayTriggered(countdownSeconds: 0)
|
||||
let event2 = ReminderEvent.lookAwayTriggered(countdownSeconds: 10)
|
||||
let event3 = ReminderEvent.lookAwayTriggered(countdownSeconds: 60)
|
||||
|
||||
XCTAssertNotEqual(event1, event2)
|
||||
XCTAssertNotEqual(event2, event3)
|
||||
XCTAssertNotEqual(event1, event3)
|
||||
|
||||
XCTAssertEqual(event1.type, .lookAway)
|
||||
XCTAssertEqual(event2.type, .lookAway)
|
||||
XCTAssertEqual(event3.type, .lookAway)
|
||||
}
|
||||
|
||||
func testNegativeCountdown() {
|
||||
let event = ReminderEvent.lookAwayTriggered(countdownSeconds: -5)
|
||||
|
||||
if case .lookAwayTriggered(let countdown) = event {
|
||||
XCTAssertEqual(countdown, -5)
|
||||
} else {
|
||||
XCTFail("Expected lookAwayTriggered event")
|
||||
}
|
||||
}
|
||||
|
||||
func testSwitchExhaustivenessWithAllCases() {
|
||||
let events: [ReminderEvent] = [
|
||||
.lookAwayTriggered(countdownSeconds: 20),
|
||||
.blinkTriggered,
|
||||
.postureTriggered
|
||||
]
|
||||
|
||||
for event in events {
|
||||
switch event {
|
||||
case .lookAwayTriggered:
|
||||
XCTAssertEqual(event.type, .lookAway)
|
||||
case .blinkTriggered:
|
||||
XCTAssertEqual(event.type, .blink)
|
||||
case .postureTriggered:
|
||||
XCTAssertEqual(event.type, .posture)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user