diff --git a/crates/api_common/src/utils.rs b/crates/api_common/src/utils.rs index 6b0b011a9..8c341c44b 100644 --- a/crates/api_common/src/utils.rs +++ b/crates/api_common/src/utils.rs @@ -314,7 +314,7 @@ pub async fn build_federated_instances( /// Checks the password length pub fn password_length_check(pass: &str) -> Result<(), LemmyError> { - if !(10..=60).contains(&pass.len()) { + if !(10..=60).contains(&pass.chars().count()) { Err(LemmyError::from_message("invalid_password")) } else { Ok(()) @@ -791,3 +791,17 @@ pub fn listing_type_with_site_default( &local_site.default_post_listing_type, )?)) } + +#[cfg(test)] +mod tests { + use crate::utils::password_length_check; + + #[test] + #[rustfmt::skip] + fn password_length() { + assert!(password_length_check("Õ¼¾°3yË,o¸ãtÌÈú|ÇÁÙAøüÒI©·¤(T]/ð>æºWæ[C¤bªWöaÃÎñ·{=û³&§½K/c").is_ok()); + assert!(password_length_check("1234567890").is_ok()); + assert!(password_length_check("short").is_err()); + assert!(password_length_check("looooooooooooooooooooooooooooooooooooooooooooooooooooooooooong").is_err()); + } +}