From 8cea85ff85e43a4a083af1102a2d4c5e293da70d Mon Sep 17 00:00:00 2001 From: Adrian Rivera Date: Thu, 1 Oct 2020 20:29:12 -0700 Subject: [PATCH 1/3] Fixes a bug when generating passwords with min_length eq 1 --- lib/faker/default/internet.rb | 6 +++++- test/faker/default/test_faker_internet.rb | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/faker/default/internet.rb b/lib/faker/default/internet.rb index 57ec2b9e7b..3dfbec43f0 100644 --- a/lib/faker/default/internet.rb +++ b/lib/faker/default/internet.rb @@ -115,7 +115,11 @@ def password(legacy_min_length = NOT_GIVEN, legacy_max_length = NOT_GIVEN, legac keywords << :special_characters if legacy_special_characters != NOT_GIVEN end - min_alpha = mix_case ? 2 : 0 + min_alpha = if mix_case && min_length > 1 + 2 + else + 0 + end temp = Lorem.characters(number: min_length, min_alpha: min_alpha) diff_length = max_length - min_length diff --git a/test/faker/default/test_faker_internet.rb b/test/faker/default/test_faker_internet.rb index 9454f617b1..f56c74a936 100644 --- a/test/faker/default/test_faker_internet.rb +++ b/test/faker/default/test_faker_internet.rb @@ -145,6 +145,20 @@ def test_password_with_mixed_case assert downcase_count >= 1 end + def test_password_with_min_length_eq_1 + min_length = 1 + password = @tester.password(min_length: min_length) + assert password.match(/\w+/) + end + + def test_password_with_min_length_and_max_length + min_length = 2 + max_length = 5 + password = @tester.password(min_length: min_length, max_length: max_length) + assert password.match(/\w+/) + assert (min_length..max_length).include?(password.size), 'Password size is incorrect' + end + def test_password_without_mixed_case assert @tester.password(min_length: 8, max_length: 12, mix_case: false).match(/[^A-Z]+/) end From c59b6a5bd08925f016ca506f7dea340df9eb8d14 Mon Sep 17 00:00:00 2001 From: "Stephen A. Wilson" Date: Fri, 2 Oct 2020 13:44:29 -0400 Subject: [PATCH 2/3] swap if block for brackets --- lib/faker/default/internet.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/faker/default/internet.rb b/lib/faker/default/internet.rb index 3dfbec43f0..f89ce42e12 100644 --- a/lib/faker/default/internet.rb +++ b/lib/faker/default/internet.rb @@ -115,11 +115,7 @@ def password(legacy_min_length = NOT_GIVEN, legacy_max_length = NOT_GIVEN, legac keywords << :special_characters if legacy_special_characters != NOT_GIVEN end - min_alpha = if mix_case && min_length > 1 - 2 - else - 0 - end + min_alpha = (mix_case && min_length > 1) ? 2 : 0 temp = Lorem.characters(number: min_length, min_alpha: min_alpha) diff_length = max_length - min_length From 84a2c70c8d5b7d96edab24e925275f2257efaa39 Mon Sep 17 00:00:00 2001 From: "Stephen A. Wilson" Date: Fri, 2 Oct 2020 13:47:01 -0400 Subject: [PATCH 3/3] Update internet.rb Oh... that ticks off Rubocop. Nvm. Reverting back to the original version --- lib/faker/default/internet.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/faker/default/internet.rb b/lib/faker/default/internet.rb index f89ce42e12..192f8dd9eb 100644 --- a/lib/faker/default/internet.rb +++ b/lib/faker/default/internet.rb @@ -115,7 +115,7 @@ def password(legacy_min_length = NOT_GIVEN, legacy_max_length = NOT_GIVEN, legac keywords << :special_characters if legacy_special_characters != NOT_GIVEN end - min_alpha = (mix_case && min_length > 1) ? 2 : 0 + min_alpha = mix_case && min_length > 1 ? 2 : 0 temp = Lorem.characters(number: min_length, min_alpha: min_alpha) diff_length = max_length - min_length