Files
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

85 lines
3.2 KiB
Swift

import XCTest
import MacToolsPluginKit
@testable import MenuBarHiddenPlugin
@MainActor
final class MenuBarHiddenStoreTests: XCTestCase {
func testEnabledDefaultsToFalse() {
let store = MenuBarHiddenStore(storage: MenuBarHiddenMemoryStorage())
XCTAssertFalse(store.isEnabled)
}
func testAlwaysHiddenItemStableKeysDefaultToEmpty() {
let store = MenuBarHiddenStore(storage: MenuBarHiddenMemoryStorage())
XCTAssertTrue(store.alwaysHiddenItemStableKeys.isEmpty)
}
func testVisibleHiddenLayoutDefaultsToMissingUntilRecorded() {
let store = MenuBarHiddenStore(storage: MenuBarHiddenMemoryStorage())
XCTAssertFalse(store.hasVisibleHiddenLayout)
XCTAssertTrue(store.visibleItemStableKeys.isEmpty)
XCTAssertTrue(store.hiddenItemStableKeys.isEmpty)
}
func testVisibleHiddenLayoutPersistsStableKeysInOrderWithoutDuplicates() {
let storage = MenuBarHiddenMemoryStorage()
let store = MenuBarHiddenStore(storage: storage)
store.recordVisibleHiddenLayout(
visibleKeys: ["com.example.a:Item", "com.example.a:Item", ""],
hiddenKeys: ["com.example.b:Item", "com.example.a:Item", "com.example.c:Item"]
)
XCTAssertTrue(store.hasVisibleHiddenLayout)
XCTAssertEqual(storage.stringArray(forKey: "visible-item-stable-keys"), [
"com.example.a:Item",
])
XCTAssertEqual(storage.stringArray(forKey: "hidden-item-stable-keys"), [
"com.example.b:Item",
"com.example.c:Item",
])
XCTAssertEqual(MenuBarHiddenStore(storage: storage).visibleItemStableKeys, [
"com.example.a:Item",
])
XCTAssertEqual(MenuBarHiddenStore(storage: storage).hiddenItemStableKeys, [
"com.example.b:Item",
"com.example.c:Item",
])
}
func testAlwaysHiddenItemStableKeysPersistSortedWithoutDuplicates() {
let storage = MenuBarHiddenMemoryStorage()
let store = MenuBarHiddenStore(storage: storage)
let first = MenuBarItemTag(namespace: "com.example.b", title: "Item", windowID: nil, instanceIndex: 0)
let second = MenuBarItemTag(namespace: "com.example.a", title: "Item", windowID: nil, instanceIndex: 1)
store.recordAlwaysHiddenItem(first)
store.recordAlwaysHiddenItem(second)
store.recordAlwaysHiddenItem(first)
XCTAssertEqual(storage.stringArray(forKey: "always-hidden-item-stable-keys"), [
"com.example.a:Item:1",
"com.example.b:Item",
])
XCTAssertEqual(MenuBarHiddenStore(storage: storage).alwaysHiddenItemStableKeys, [
"com.example.a:Item:1",
"com.example.b:Item",
])
}
func testRemovingLastAlwaysHiddenItemClearsStorage() {
let storage = MenuBarHiddenMemoryStorage()
let store = MenuBarHiddenStore(storage: storage)
let tag = MenuBarItemTag(namespace: "com.example.app", title: "Item", windowID: nil, instanceIndex: 0)
store.recordAlwaysHiddenItem(tag)
store.removeAlwaysHiddenItem(tag)
XCTAssertTrue(store.alwaysHiddenItemStableKeys.isEmpty)
XCTAssertNil(storage.stringArray(forKey: "always-hidden-item-stable-keys"))
}
}