105 lines
3.2 KiB
Swift
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)
|
|
}
|
|
}
|