mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 23:45:18 +00:00
* Expand coverage for transport, chat, and media flows * Stabilize transport and media coverage tests --------- Co-authored-by: jack <jackjackbits@users.noreply.github.com>
55 lines
2.2 KiB
Swift
55 lines
2.2 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import bitchat
|
|
|
|
@Suite("PreviewKeychainManager Tests")
|
|
struct PreviewKeychainManagerTests {
|
|
|
|
@Test("Preview keychain manager stores identity and service-scoped data in memory")
|
|
func previewKeychainManagerRoundTripsData() {
|
|
let manager = PreviewKeychainManager()
|
|
let identityKey = Data([1, 2, 3, 4])
|
|
let serviceKey = "preview-service"
|
|
let scopedData = Data([9, 8, 7, 6])
|
|
|
|
#expect(!manager.verifyIdentityKeyExists())
|
|
#expect(manager.saveIdentityKey(identityKey, forKey: "noiseStaticKey"))
|
|
#expect(manager.getIdentityKey(forKey: "noiseStaticKey") == identityKey)
|
|
#expect(manager.saveIdentityKey(identityKey, forKey: "identity_noiseStaticKey"))
|
|
#expect(manager.verifyIdentityKeyExists())
|
|
|
|
if case .success(let stored) = manager.getIdentityKeyWithResult(forKey: "noiseStaticKey") {
|
|
#expect(stored == identityKey)
|
|
} else {
|
|
Issue.record("Expected stored preview identity key")
|
|
}
|
|
|
|
if case .success = manager.saveIdentityKeyWithResult(Data([5, 6, 7]), forKey: "ed25519SigningKey") {
|
|
} else {
|
|
Issue.record("Expected preview keychain save to succeed")
|
|
}
|
|
|
|
manager.save(key: "blob", data: scopedData, service: serviceKey, accessible: nil)
|
|
#expect(manager.load(key: "blob", service: serviceKey) == scopedData)
|
|
manager.delete(key: "blob", service: serviceKey)
|
|
#expect(manager.load(key: "blob", service: serviceKey) == nil)
|
|
|
|
var secretData = Data([4, 3, 2, 1])
|
|
var secretString = "secret"
|
|
manager.secureClear(&secretData)
|
|
manager.secureClear(&secretString)
|
|
#expect(secretData == Data([4, 3, 2, 1]))
|
|
#expect(secretString == "secret")
|
|
|
|
#expect(manager.deleteIdentityKey(forKey: "noiseStaticKey"))
|
|
#expect(manager.deleteIdentityKey(forKey: "identity_noiseStaticKey"))
|
|
#expect(manager.getIdentityKey(forKey: "noiseStaticKey") == nil)
|
|
#expect(manager.deleteAllKeychainData())
|
|
|
|
if case .itemNotFound = manager.getIdentityKeyWithResult(forKey: "ed25519SigningKey") {
|
|
} else {
|
|
Issue.record("Expected preview keychain to be empty after deleteAllKeychainData")
|
|
}
|
|
}
|
|
}
|