Add new test to validate TOTP codes generation
This commit is contained in:
		@@ -94,4 +94,23 @@ impl TotpKey {
 | 
				
			|||||||
    pub fn check_code(&self, code: &str) -> Res<bool> {
 | 
					    pub fn check_code(&self, code: &str) -> Res<bool> {
 | 
				
			||||||
        Ok(self.current_code()?.eq(code) || self.previous_code()?.eq(code))
 | 
					        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());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user