diff options
author | gabrielgio <gabriel.giovanini@pm.me> | 2022-03-25 22:43:47 +0100 |
---|---|---|
committer | gabrielgio <gabriel.giovanini@pm.me> | 2022-03-25 22:43:47 +0100 |
commit | 860594ffb7c013e5f4257bd615472e08c8c685c6 (patch) | |
tree | a5a46af59046ca1c3a18a1c5a7d93c91024c22b3 | |
parent | b92dd0a4c59287b661759d3cdcd6f62e1afcd815 (diff) | |
download | genpass-860594ffb7c013e5f4257bd615472e08c8c685c6.tar.gz genpass-860594ffb7c013e5f4257bd615472e08c8c685c6.tar.bz2 genpass-860594ffb7c013e5f4257bd615472e08c8c685c6.zip |
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).
-rw-r--r-- | .gitlab-ci.yml | 2 | ||||
-rw-r--r-- | less | 7 | ||||
-rw-r--r-- | src/lib.rs | 5 | ||||
-rw-r--r-- | tests/web.rs | 12 |
4 files changed, 25 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 176339b..0cb348c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,6 +13,8 @@ test: - make test pages: + needs: + - test before_script: - export PATH="$PATH:$HOME/.cargo/bin" - apk add npm make curl build-base @@ -0,0 +1,7 @@ +wasm-pack test --headless --firefox +no tests to run! +
Set timeout to 20 seconds... +Executing bindgen...
Running headless tests in Firefox on `http://127.0.0.1:42097/` +Try find `webdriver.json` for configure browser's capabilities: +Not found +Starting new webdriver session...
\ No newline at end of file @@ -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<char> = String::from("ABCDEFGHIJKLMNOPQRSTUVWXYZ").chars().collect(); let mut lower_charset: Vec<char> = String::from("abcdefghijklmnopqrstuvwxyz").chars().collect(); let mut number_charset: Vec<char> = 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()); diff --git a/tests/web.rs b/tests/web.rs index 607f16d..b83608f 100644 --- a/tests/web.rs +++ b/tests/web.rs @@ -62,3 +62,15 @@ fn generate_not_special_letters() { } } } + +#[wasm_bindgen_test] +fn generate_0_len() { + let password = generate(0, true, true, true, true); + assert_eq!(0, password.len()) +} + +#[wasm_bindgen_test] +fn generate_no_letters() { + let password = generate(100, false, false, false, false); + assert_eq!(0, password.len()) +} |