68 lines
2.2 KiB
Swift
68 lines
2.2 KiB
Swift
import XCTest
|
|
@testable import CommandNotch
|
|
|
|
@MainActor
|
|
final class ScreenContextTests: XCTestCase {
|
|
func testInteractiveResizeDefersPersistingSettingsUntilResizeEnds() {
|
|
let store = ScreenContextTestSettingsStore()
|
|
var settings = AppSettings.default
|
|
settings.display.openWidth = 640
|
|
settings.display.openHeight = 350
|
|
store.storedSettings = settings
|
|
|
|
let controller = AppSettingsController(store: store)
|
|
let screen = ScreenContext(
|
|
id: "screen-a",
|
|
workspaceID: UUID(),
|
|
settingsController: controller,
|
|
screenProvider: { _ in nil }
|
|
)
|
|
|
|
screen.open()
|
|
screen.beginInteractiveResize()
|
|
screen.resizeOpenNotch(to: CGSize(width: 800, height: 420))
|
|
|
|
XCTAssertEqual(screen.notchSize.width, 800)
|
|
XCTAssertEqual(screen.notchSize.height, 420)
|
|
XCTAssertEqual(controller.settings.display.openWidth, 640)
|
|
XCTAssertEqual(controller.settings.display.openHeight, 350)
|
|
|
|
screen.endInteractiveResize()
|
|
|
|
XCTAssertEqual(controller.settings.display.openWidth, 800)
|
|
XCTAssertEqual(controller.settings.display.openHeight, 420)
|
|
XCTAssertEqual(store.storedSettings.display.openWidth, 800)
|
|
XCTAssertEqual(store.storedSettings.display.openHeight, 420)
|
|
}
|
|
|
|
func testFocusLossAutoCloseSuppressionCanBeToggled() {
|
|
let controller = AppSettingsController(store: ScreenContextTestSettingsStore())
|
|
let screen = ScreenContext(
|
|
id: "screen-a",
|
|
workspaceID: UUID(),
|
|
settingsController: controller,
|
|
screenProvider: { _ in nil }
|
|
)
|
|
|
|
XCTAssertFalse(screen.suppressCloseOnFocusLoss)
|
|
|
|
screen.setCloseOnFocusLossSuppressed(true)
|
|
XCTAssertTrue(screen.suppressCloseOnFocusLoss)
|
|
|
|
screen.setCloseOnFocusLossSuppressed(false)
|
|
XCTAssertFalse(screen.suppressCloseOnFocusLoss)
|
|
}
|
|
}
|
|
|
|
private final class ScreenContextTestSettingsStore: AppSettingsStoreType {
|
|
var storedSettings = AppSettings.default
|
|
|
|
func load() -> AppSettings {
|
|
storedSettings
|
|
}
|
|
|
|
func save(_ settings: AppSettings) {
|
|
storedSettings = settings
|
|
}
|
|
}
|