cmux/cmuxTests/InactivePaneFirstClickFocusTests.swift
Lawrence Chen 7cbac356fc
Add optional single-click focus for inactive panes (#1796)
* Add failing first-click pane focus tests

* Enable optional first-click focus for inactive panes

* Address PR review follow-ups

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-19 01:01:10 -07:00

72 lines
2.1 KiB
Swift

import XCTest
import AppKit
import WebKit
#if canImport(cmux_DEV)
@testable import cmux_DEV
#elseif canImport(cmux)
@testable import cmux
#endif
@MainActor
final class InactivePaneFirstClickFocusTests: XCTestCase {
private let settingsKey = "paneFirstClickFocus.enabled"
override func setUp() {
super.setUp()
UserDefaults.standard.removeObject(forKey: settingsKey)
}
override func tearDown() {
UserDefaults.standard.removeObject(forKey: settingsKey)
super.tearDown()
}
func testTerminalViewAcceptsFirstMouseWhenSettingEnabled() {
UserDefaults.standard.set(true, forKey: settingsKey)
let view = GhosttyNSView(frame: .zero)
XCTAssertTrue(view.acceptsFirstMouse(for: nil))
}
func testTerminalViewRejectsFirstMouseWhenSettingDisabled() {
UserDefaults.standard.set(false, forKey: settingsKey)
let view = GhosttyNSView(frame: .zero)
XCTAssertFalse(view.acceptsFirstMouse(for: nil))
}
func testBrowserViewAcceptsFirstMouseWhenSettingEnabled() {
UserDefaults.standard.set(true, forKey: settingsKey)
let view = CmuxWebView(frame: .zero, configuration: WKWebViewConfiguration())
XCTAssertTrue(view.acceptsFirstMouse(for: nil))
}
func testBrowserViewRejectsFirstMouseWhenSettingDisabled() {
UserDefaults.standard.set(false, forKey: settingsKey)
let view = CmuxWebView(frame: .zero, configuration: WKWebViewConfiguration())
XCTAssertFalse(view.acceptsFirstMouse(for: nil))
}
func testMarkdownPointerObserverAcceptsFirstMouseWhenSettingEnabled() {
UserDefaults.standard.set(true, forKey: settingsKey)
let view = MarkdownPanelPointerObserverView(frame: .zero)
XCTAssertTrue(view.acceptsFirstMouse(for: nil))
}
func testMarkdownPointerObserverRejectsFirstMouseWhenSettingDisabled() {
UserDefaults.standard.set(false, forKey: settingsKey)
let view = MarkdownPanelPointerObserverView(frame: .zero)
XCTAssertFalse(view.acceptsFirstMouse(for: nil))
}
}