From 860594ffb7c013e5f4257bd615472e08c8c685c6 Mon Sep 17 00:00:00 2001 From: gabrielgio Date: Fri, 25 Mar 2022 22:43:47 +0100 Subject: ref: Add test for edge case Add test case for when you call with 0 length or no option (upper case, lower case, number and special). --- src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index a4fa227..a19cbfa 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -17,6 +17,10 @@ extern { #[wasm_bindgen] pub fn generate(len: usize, lower: bool, upper: bool, number: bool, special: bool) -> String { + if len == 0 ||!lower && !upper && !number && !special { + return "".to_string(); + } + let mut upper_charset: Vec = String::from("ABCDEFGHIJKLMNOPQRSTUVWXYZ").chars().collect(); let mut lower_charset: Vec = String::from("abcdefghijklmnopqrstuvwxyz").chars().collect(); let mut number_charset: Vec = String::from("1234567890").chars().collect(); @@ -41,7 +45,6 @@ pub fn generate(len: usize, lower: bool, upper: bool, number: bool, special: boo result.append(&mut special_charset); } - (0..len) .map(|_| { let idx = rng.gen_range(0..result.len()); -- cgit v1.2.3