upper_and_lower_case_characters_spec.rb 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. require 'rails_helper'
  2. require 'lib/password_policy/error_examples'
  3. RSpec.describe PasswordPolicy::UpperAndLowerCaseCharacters do
  4. it_behaves_like 'declaring an error'
  5. describe '.applicable?' do
  6. it "returns false when Setting 'password_min_2_lower_2_upper_characters' is disabled" do
  7. Setting.set('password_min_2_lower_2_upper_characters', 0)
  8. expect(described_class).not_to be_applicable
  9. end
  10. it "returns true when Setting 'password_min_2_lower_2_upper_characters' is enabled" do
  11. Setting.set('password_min_2_lower_2_upper_characters', 1)
  12. expect(described_class).to be_applicable
  13. end
  14. end
  15. describe '#valid?' do
  16. it 'valid when upper and lower letters included' do
  17. instance = described_class.new('abcDE')
  18. expect(instance).to be_valid
  19. end
  20. it 'valid when upper and lower letters included are non-ASCII' do
  21. instance = described_class.new('ąčŪŽ')
  22. expect(instance).to be_valid
  23. end
  24. it 'not valid when only upper letters' do
  25. instance = described_class.new('NOTSOGOODPW')
  26. expect(instance).not_to be_valid
  27. end
  28. it 'not valid when only lower letters' do
  29. instance = described_class.new('notsogoodpw')
  30. expect(instance).not_to be_valid
  31. end
  32. it 'not valid when only upper letter included' do
  33. instance = described_class.new('abcD')
  34. expect(instance).not_to be_valid
  35. end
  36. end
  37. end