general: test redux

This commit is contained in:
Michael Freno
2026-01-15 15:37:42 -05:00
parent 80edfa8e06
commit 9c6bdaed6a
23 changed files with 2452 additions and 35 deletions

View File

@@ -0,0 +1,129 @@
//
// WindowManagerTests.swift
// GazeTests
//
// Unit tests for WindowManager service.
//
import SwiftUI
import XCTest
@testable import Gaze
@MainActor
final class WindowManagerTests: XCTestCase {
var windowManager: WindowManager!
override func setUp() async throws {
windowManager = WindowManager.shared
}
override func tearDown() async throws {
windowManager.dismissAllReminders()
windowManager = nil
}
// MARK: - Initialization Tests
func testWindowManagerInitialization() {
XCTAssertNotNil(windowManager)
}
func testInitialState() {
XCTAssertFalse(windowManager.isOverlayReminderVisible)
XCTAssertFalse(windowManager.isSubtleReminderVisible)
}
// MARK: - Window Visibility Tests
func testOverlayReminderVisibility() {
XCTAssertFalse(windowManager.isOverlayReminderVisible)
let view = Text("Test Overlay")
windowManager.showReminderWindow(view, windowType: .overlay)
XCTAssertTrue(windowManager.isOverlayReminderVisible)
windowManager.dismissOverlayReminder()
XCTAssertFalse(windowManager.isOverlayReminderVisible)
}
func testSubtleReminderVisibility() {
XCTAssertFalse(windowManager.isSubtleReminderVisible)
let view = Text("Test Subtle")
windowManager.showReminderWindow(view, windowType: .subtle)
XCTAssertTrue(windowManager.isSubtleReminderVisible)
windowManager.dismissSubtleReminder()
XCTAssertFalse(windowManager.isSubtleReminderVisible)
}
// MARK: - Multiple Window Tests
func testShowBothWindowTypes() {
let overlayView = Text("Overlay")
let subtleView = Text("Subtle")
windowManager.showReminderWindow(overlayView, windowType: .overlay)
windowManager.showReminderWindow(subtleView, windowType: .subtle)
XCTAssertTrue(windowManager.isOverlayReminderVisible)
XCTAssertTrue(windowManager.isSubtleReminderVisible)
}
func testDismissAllReminders() {
let overlayView = Text("Overlay")
let subtleView = Text("Subtle")
windowManager.showReminderWindow(overlayView, windowType: .overlay)
windowManager.showReminderWindow(subtleView, windowType: .subtle)
windowManager.dismissAllReminders()
XCTAssertFalse(windowManager.isOverlayReminderVisible)
XCTAssertFalse(windowManager.isSubtleReminderVisible)
}
// MARK: - Window Replacement Tests
func testReplaceOverlayWindow() {
let firstView = Text("First Overlay")
let secondView = Text("Second Overlay")
windowManager.showReminderWindow(firstView, windowType: .overlay)
XCTAssertTrue(windowManager.isOverlayReminderVisible)
// Showing a new overlay should replace the old one
windowManager.showReminderWindow(secondView, windowType: .overlay)
XCTAssertTrue(windowManager.isOverlayReminderVisible)
}
func testReplaceSubtleWindow() {
let firstView = Text("First Subtle")
let secondView = Text("Second Subtle")
windowManager.showReminderWindow(firstView, windowType: .subtle)
XCTAssertTrue(windowManager.isSubtleReminderVisible)
windowManager.showReminderWindow(secondView, windowType: .subtle)
XCTAssertTrue(windowManager.isSubtleReminderVisible)
}
// MARK: - Integration with Settings Tests
func testShowSettingsWithSettingsManager() {
let settingsManager = SettingsManager.shared
// Should not crash
windowManager.showSettings(settingsManager: settingsManager, initialTab: 0)
}
func testShowOnboardingWithSettingsManager() {
let settingsManager = SettingsManager.shared
// Should not crash
windowManager.showOnboarding(settingsManager: settingsManager)
}
}