项目文件夹

文件
wehub-resource-sync 1d1286fadb
Build / Build and test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:18:38 +08:00

72 行
2.1 KiB
Swift

import XCTest
@testable import AutoHideDockPlugin
@MainActor
final class AutoHideDockPluginTests: XCTestCase {
func testMetadataIdentifiesAutoHideDockPlugin() {
let plugin = AutoHideDockPlugin(
commandRunner: MockDockCommandRunner(),
stateReader: { false }
)
XCTAssertEqual(plugin.metadata.id, "auto-hide-dock")
XCTAssertEqual(plugin.metadata.title, "自动隐藏程序坞")
XCTAssertEqual(plugin.primaryPanelDescriptor.controlStyle, .switch)
}
func testInitialStateReflectsStateReader() {
let plugin = AutoHideDockPlugin(
commandRunner: MockDockCommandRunner(),
stateReader: { true }
)
XCTAssertTrue(plugin.primaryPanelState.isOn)
XCTAssertEqual(plugin.primaryPanelState.subtitle, "已开启")
}
func testSwitchOnUpdatesDockState() {
let runner = MockDockCommandRunner()
let plugin = AutoHideDockPlugin(
commandRunner: runner,
stateReader: { false }
)
plugin.handleAction(.setSwitch(true))
XCTAssertEqual(runner.setDockAutohideCalls, [true])
XCTAssertTrue(plugin.primaryPanelState.isOn)
XCTAssertNil(plugin.primaryPanelState.errorMessage)
}
func testSwitchFailureKeepsPreviousStateAndSetsError() {
let runner = MockDockCommandRunner()
runner.shouldFailSet = true
let plugin = AutoHideDockPlugin(
commandRunner: runner,
stateReader: { false }
)
plugin.handleAction(.setSwitch(true))
XCTAssertFalse(plugin.primaryPanelState.isOn)
XCTAssertNotNil(plugin.primaryPanelState.errorMessage)
}
}
private final class MockDockCommandRunner: DockCommandRunning {
var shouldFailSet = false
var setDockAutohideCalls: [Bool] = []
func setDockAutohide(_ isEnabled: Bool) throws {
if shouldFailSet {
throw NSError(
domain: "AutoHideDockPluginTests",
code: 1,
userInfo: [NSLocalizedDescriptionKey: "set failed"]
)
}
setDockAutohideCalls.append(isEnabled)
}
}