1
0
mirror of git://jb55.com/damus synced 2024-09-16 02:03:45 +00:00
damus/damusTests/KeychainStorageTests.swift

47 lines
1.3 KiB
Swift
Raw Normal View History

//
// KeychainStorageTests.swift
// damusTests
//
// Created by Bryan Montz on 5/3/23.
//
import XCTest
@testable import damus
import Security
final class KeychainStorageTests: XCTestCase {
@KeychainStorage(account: "test-keyname")
var secret: String?
override func tearDownWithError() throws {
secret = nil
}
func testWriteToKeychain() throws {
// write a secret to the keychain using the property wrapper's setter
secret = "super-secure-key"
// verify it exists in the keychain using the property wrapper's getter
XCTAssertEqual(secret, "super-secure-key")
// verify it exists in the keychain directly
let query = [
kSecAttrService: "damus",
kSecAttrAccount: "test-keyname",
kSecClass: kSecClassGenericPassword,
kSecReturnData: true,
kSecMatchLimit: kSecMatchLimitOne
] as [CFString: Any] as CFDictionary
var result: AnyObject?
let status = SecItemCopyMatching(query, &result)
XCTAssertEqual(status, errSecSuccess)
let data = try XCTUnwrap(result as? Data)
let the_secret = String(data: data, encoding: .utf8)
XCTAssertEqual(the_secret, "super-secure-key")
}
}