krz/keycask

Password manager: Swift core library, CLI for macOS/Linux/Windows, iOS/macOS app. cli password-manager swift

Commit 983db3132e

983db3132e66fe2610998f1e02623b75bb0a80e7

parent: c39d0256ee

Verified · cmc

cmc <hello@cleberg.net> · 2026-09-17 15:27 UTC

Make passphrase test deterministic

Layout: unified · split

Tests/KeycaskCoreTests/GeneratorTests.swift +8 −5
@@ -35,12 +35,15 @@ import Testing
35 } 35 }
36 36
37 @Test func passphraseUsesWordsFromTheList() { 37 @Test func passphraseUsesWordsFromTheList() {
38 let words = Set(Wordlist.words) 38 var a = Counter()
39 let p = Generator.passphrase(words: 5) 39 var b = Counter()
40 let parts = p.split(separator: "-").map(String.init) 40 let produced = Generator.passphrase(words: 5, using: &a)
41 #expect(parts.count == 5) 41 let count = UInt32(Wordlist.words.count)
42 #expect(parts.allSatisfy { words.contains($0) }) 42 let expected = (0..<5).map { _ in Wordlist.words[Int(b.next(upperBound: count))] }
43 .joined(separator: Generator.wordSeparator)
44 #expect(produced == expected)
43 #expect(Generator.passphrase(words: 0) == "") 45 #expect(Generator.passphrase(words: 0) == "")
46 #expect(!Generator.passphrase(words: 3).isEmpty)
44 } 47 }
45 48
46 @Test func seededOutputIsReproducible() { 49 @Test func seededOutputIsReproducible() {