From 10982190e7810db8daaedeb10128aa19ac21be62 Mon Sep 17 00:00:00 2001 From: Pierre Hubert Date: Wed, 20 Apr 2022 18:06:04 +0200 Subject: [PATCH] Add new test to validate TOTP codes generation --- src/data/totp_key.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/data/totp_key.rs b/src/data/totp_key.rs index fc2298c..1131a4e 100644 --- a/src/data/totp_key.rs +++ b/src/data/totp_key.rs @@ -94,4 +94,23 @@ impl TotpKey { pub fn check_code(&self, code: &str) -> Res { Ok(self.current_code()?.eq(code) || self.previous_code()?.eq(code)) } +} + +#[cfg(test)] +mod test { + use crate::data::totp_key::TotpKey; + + #[test] + fn test_timing() { + let key = TotpKey::new_random(); + let code = key.current_code().unwrap(); + let old_code = key.previous_code().unwrap(); + assert_ne!(code, old_code); + } + + #[test] + fn test_generation() { + let key = TotpKey::from_encoded_secret("JBSWY3DPEHPK3PXP"); + assert_eq!("124851", key.get_code_at(|| 1650470683).unwrap()); + } } \ No newline at end of file