use auth::crypto::{hash_password, verify_password};

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_password_hashing() {
        let password = "test_password_123";
        let hash = hash_password(password).expect("Failed to hash password");
        assert!(!hash.is_empty());
        assert_ne!(hash, password);

        let is_valid = verify_password(password, &hash).expect("Failed to verify password");
        assert!(is_valid);

        let is_invalid =
            verify_password("wrong_password", &hash).expect("Failed to verify password");
        assert!(!is_invalid);
    }

    #[test]
    fn test_empty_password() {
        let password = "";
        let hash = hash_password(password).expect("Failed to hash password");
        // Argon2 allows empty passwords, so we just verify it produces a hash
        assert!(!hash.is_empty());

        // And verify that verification works
        let is_valid = verify_password(password, &hash).expect("Failed to verify password");
        assert!(is_valid);
    }
}
