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

77 lines
2.3 KiB
Swift

import XCTest
import MacToolsPluginKit
@testable import MacTools
@testable import LaunchControlPlugin
@MainActor
final class LaunchControlNotesStoreTests: XCTestCase {
private var suiteName: String!
private var defaults: UserDefaults!
override func setUp() {
super.setUp()
suiteName = "LaunchControlNotesStoreTests-\(UUID().uuidString)"
defaults = UserDefaults(suiteName: suiteName)
}
override func tearDown() {
defaults.removePersistentDomain(forName: suiteName)
defaults = nil
suiteName = nil
super.tearDown()
}
private func makeStore() -> LaunchControlNotesStore {
LaunchControlNotesStore(userDefaults: defaults)
}
func testNoteIsEmptyByDefault() {
let store = makeStore()
XCTAssertEqual(store.note(for: "com.example.agent"), "")
XCTAssertTrue(store.allNotes().isEmpty)
}
func testSetAndGetNote() {
let store = makeStore()
store.setNote("夜间重建索引", for: "com.example.agent")
XCTAssertEqual(store.note(for: "com.example.agent"), "夜间重建索引")
}
func testNoteIsTrimmedOnSave() {
let store = makeStore()
store.setNote(" 有空格 ", for: "x")
XCTAssertEqual(store.note(for: "x"), "有空格")
}
func testWhitespaceOnlyNoteClearsEntry() {
let store = makeStore()
store.setNote("保留", for: "x")
store.setNote(" \n ", for: "x")
XCTAssertEqual(store.note(for: "x"), "")
XCTAssertNil(store.allNotes()["x"])
}
func testEmptyStringClearsNote() {
let store = makeStore()
store.setNote("note", for: "z")
store.setNote("", for: "z")
XCTAssertEqual(store.note(for: "z"), "")
XCTAssertTrue(store.allNotes().isEmpty)
}
func testNotesPersistAcrossInstances() {
makeStore().setNote("持久化", for: "y")
// A fresh store backed by the same defaults must read the saved note.
XCTAssertEqual(makeStore().note(for: "y"), "持久化")
}
func testMultipleNotesAreIndependent() {
let store = makeStore()
store.setNote("a-note", for: "a")
store.setNote("b-note", for: "b")
XCTAssertEqual(store.note(for: "a"), "a-note")
XCTAssertEqual(store.note(for: "b"), "b-note")
XCTAssertEqual(store.allNotes().count, 2)
}
}