import XCTest @testable import KeeVaultCore final class ProtectedStringTests: XCTestCase { func test_reveal_returnsOriginalValue() { let ps = ProtectedString("hunter2", isProtected: true) XCTAssertEqual(ps.reveal(), "hunter2") } func test_description_isRedactedWhenProtected() { let ps = ProtectedString("secret", isProtected: true) XCTAssertEqual("\(ps)", "***") } func test_description_isPlainWhenNotProtected() { let ps = ProtectedString("visible", isProtected: false) XCTAssertEqual("\(ps)", "visible") } func test_equality_matchesByRevealedValue() { let a = ProtectedString("abc", isProtected: true) let b = ProtectedString("abc", isProtected: true) XCTAssertEqual(a, b) } func test_debugDescription_neverRevealSecret() { let ps = ProtectedString("topsecret", isProtected: true) XCTAssertFalse(ps.debugDescription.contains("topsecret")) } }