Commit 7c51198959
Verified · cmc
Layout: unified · split
Sources/KeycaskCore/Vault.swift +3 −1
| @@ -13,7 +13,9 @@ public struct Vault: Codable, Equatable, Sendable { | ||
| 13 | 13 | |
| 14 | 14 | public mutating func add(_ entry: Entry) throws { |
| 15 | 15 | guard self.entry(id: entry.id) == nil else { throw KeycaskError.duplicateID(entry.id) } |
| 16 | entries.append(entry) | |
| 16 | var normalized = entry | |
| 17 | normalized.tags = Entry.normalize(tags: entry.tags) | |
| 18 | entries.append(normalized) | |
| 17 | 19 | } |
| 18 | 20 | |
| 19 | 21 | public mutating func remove(id: EntryID) throws { |
Tests/KeycaskCoreTests/VaultTests.swift +8
| @@ -77,4 +77,12 @@ import Testing | ||
| 77 | 77 | try v.add(Entry(id: EntryID("cccc4444")!, name: "Alpha", password: "p")) |
| 78 | 78 | #expect(v.sortedEntries.map(\.id.rawValue) == ["cccc4444", "aaaa2222", "bbbb3333"]) |
| 79 | 79 | } |
| 80 | ||
| 81 | @Test func addNormalizesTagsSetAfterInit() throws { | |
| 82 | var e = Entry(id: idA(), name: "gh", password: "p") | |
| 83 | e.tags = ["z", "A", "a", " b "] | |
| 84 | var v = Vault() | |
| 85 | try v.add(e) | |
| 86 | #expect(v.entry(id: idA())!.tags == ["A", "b", "z"]) | |
| 87 | } | |
| 80 | 88 | } |