WIP: manage collections from rail

This commit is contained in:
Akshay Kolli
2026-06-30 04:01:57 -07:00
parent 16e2200244
commit 3e38514387
8 changed files with 336 additions and 10 deletions

View File

@@ -49,4 +49,32 @@ final class SettingsModelTests: XCTestCase {
XCTAssertEqual(restored.customCollectionNames, ["Research Stack", "Client Work"])
XCTAssertEqual(restored.collectionColorHex(forCollectionNamed: "Research Stack"), "#FF3355")
}
func testCustomCollectionsCanBeUpdatedAndDeleted() {
let suiteName = "com.clipbored.settingsmodel.\(UUID().uuidString)"
let defaults = UserDefaults(suiteName: suiteName)!
defer {
defaults.removePersistentDomain(forName: suiteName)
}
let settings = SettingsModel(defaults: defaults)
settings.ensureCollection(named: "Research Stack", colorHex: "#0A9EB8")
settings.ensureCollection(named: "Client Work", colorHex: "#FF3355")
let updatedName = settings.updateCollection(named: "research stack", to: "Product Research", colorHex: "#3366FF")
XCTAssertEqual(updatedName, "Product Research")
XCTAssertEqual(settings.customCollectionNames, ["Product Research", "Client Work"])
XCTAssertNil(settings.collectionColorHex(forCollectionNamed: "Research Stack"))
XCTAssertEqual(settings.collectionColorHex(forCollectionNamed: "Product Research"), "#3366FF")
settings.deleteCollection(named: "client work")
XCTAssertEqual(settings.customCollectionNames, ["Product Research"])
XCTAssertNil(settings.collectionColorHex(forCollectionNamed: "Client Work"))
let restored = SettingsModel(defaults: defaults)
XCTAssertEqual(restored.customCollectionNames, ["Product Research"])
XCTAssertEqual(restored.collectionColorHex(forCollectionNamed: "Product Research"), "#3366FF")
}
}