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,68 @@
//
// FullscreenDetectionServiceTests.swift
// GazeTests
//
// Unit tests for FullscreenDetectionService.
//
import Combine
import XCTest
@testable import Gaze
@MainActor
final class FullscreenDetectionServiceTests: XCTestCase {
var service: FullscreenDetectionService!
var cancellables: Set<AnyCancellable>!
override func setUp() async throws {
service = FullscreenDetectionService()
cancellables = []
}
override func tearDown() async throws {
cancellables = nil
service = nil
}
// MARK: - Initialization Tests
func testServiceInitialization() {
XCTAssertNotNil(service)
}
func testInitialFullscreenState() {
// Initially should not be in fullscreen (unless actually in fullscreen)
XCTAssertNotNil(service.isFullscreenActive)
}
// MARK: - Publisher Tests
func testFullscreenStatePublisher() async throws {
let expectation = XCTestExpectation(description: "Fullscreen state published")
service.$isFullscreenActive
.sink { isFullscreen in
expectation.fulfill()
}
.store(in: &cancellables)
await fulfillment(of: [expectation], timeout: 0.1)
}
// MARK: - Force Update Tests
func testForceUpdate() {
// Should not crash
service.forceUpdate()
XCTAssertNotNil(service.isFullscreenActive)
}
// MARK: - Protocol Conformance Tests
func testConformsToFullscreenDetectionProviding() {
let providing: FullscreenDetectionProviding = service
XCTAssertNotNil(providing)
XCTAssertNotNil(providing.isFullscreenActive)
}
}