Files
Gaze/GazeTests/MockWindowManagerTests.swift
2026-01-15 15:37:42 -05:00

105 lines
3.2 KiB
Swift

//
// MockWindowManagerTests.swift
// GazeTests
//
// Tests for MockWindowManager functionality.
//
import SwiftUI
import XCTest
@testable import Gaze
@MainActor
final class MockWindowManagerTests: XCTestCase {
var windowManager: MockWindowManager!
override func setUp() async throws {
windowManager = MockWindowManager()
}
override func tearDown() async throws {
windowManager = nil
}
func testShowOverlayReminder() {
XCTAssertFalse(windowManager.isOverlayReminderVisible)
let view = Text("Test Overlay")
windowManager.showReminderWindow(view, windowType: .overlay)
XCTAssertTrue(windowManager.isOverlayReminderVisible)
XCTAssertTrue(windowManager.didPerformOperation(.showOverlayReminder))
}
func testShowSubtleReminder() {
XCTAssertFalse(windowManager.isSubtleReminderVisible)
let view = Text("Test Subtle")
windowManager.showReminderWindow(view, windowType: .subtle)
XCTAssertTrue(windowManager.isSubtleReminderVisible)
XCTAssertTrue(windowManager.didPerformOperation(.showSubtleReminder))
}
func testDismissOverlayReminder() {
let view = Text("Test")
windowManager.showReminderWindow(view, windowType: .overlay)
XCTAssertTrue(windowManager.isOverlayReminderVisible)
windowManager.dismissOverlayReminder()
XCTAssertFalse(windowManager.isOverlayReminderVisible)
XCTAssertTrue(windowManager.didPerformOperation(.dismissOverlayReminder))
}
func testDismissAllReminders() {
let view = Text("Test")
windowManager.showReminderWindow(view, windowType: .overlay)
windowManager.showReminderWindow(view, windowType: .subtle)
XCTAssertTrue(windowManager.isOverlayReminderVisible)
XCTAssertTrue(windowManager.isSubtleReminderVisible)
windowManager.dismissAllReminders()
XCTAssertFalse(windowManager.isOverlayReminderVisible)
XCTAssertFalse(windowManager.isSubtleReminderVisible)
}
func testOperationTracking() {
let view = Text("Test")
windowManager.showReminderWindow(view, windowType: .overlay)
windowManager.showReminderWindow(view, windowType: .overlay)
windowManager.dismissOverlayReminder()
XCTAssertEqual(windowManager.operationCount(.showOverlayReminder), 2)
XCTAssertEqual(windowManager.operationCount(.dismissOverlayReminder), 1)
}
func testCallbacks() {
var overlayShown = false
windowManager.onShowOverlayReminder = {
overlayShown = true
}
let view = Text("Test")
windowManager.showReminderWindow(view, windowType: .overlay)
XCTAssertTrue(overlayShown)
}
func testReset() {
let view = Text("Test")
windowManager.showReminderWindow(view, windowType: .overlay)
windowManager.onShowOverlayReminder = { }
windowManager.reset()
XCTAssertFalse(windowManager.isOverlayReminderVisible)
XCTAssertEqual(windowManager.operations.count, 0)
XCTAssertNil(windowManager.onShowOverlayReminder)
}
}