import XCTest @testable import IDPGlobal final class OneTimePasscodeGeneratorTests: XCTestCase { func testCodeStaysStableWithinWindow() { let firstDate = Date(timeIntervalSince1970: 60) let secondDate = Date(timeIntervalSince1970: 89) let nextWindowDate = Date(timeIntervalSince1970: 90) let firstCode = OneTimePasscodeGenerator.code(for: "pairing-payload", at: firstDate) let secondCode = OneTimePasscodeGenerator.code(for: "pairing-payload", at: secondDate) let nextWindowCode = OneTimePasscodeGenerator.code(for: "pairing-payload", at: nextWindowDate) XCTAssertEqual(firstCode, secondCode) XCTAssertNotEqual(firstCode, nextWindowCode) } func testRenewalCountdownResetsAtBoundary() { XCTAssertEqual(OneTimePasscodeGenerator.renewalCountdown(at: Date(timeIntervalSince1970: 90)), 30) XCTAssertEqual(OneTimePasscodeGenerator.renewalCountdown(at: Date(timeIntervalSince1970: 119)), 1) XCTAssertEqual(OneTimePasscodeGenerator.renewalCountdown(at: Date(timeIntervalSince1970: 120)), 30) } }