trabajo-afectivo/spec/lib/password_policy/length_spec.rb

53 lines
1.5 KiB
Ruby
Raw Normal View History

require 'rails_helper'
require 'lib/password_policy/error_examples'
RSpec.describe PasswordPolicy::Length do
it_behaves_like 'declaring an error'
describe '.applicable?' do
it "returns true when Setting 'password_min_size' is zero" do
Setting.set('password_min_size', 0)
expect(described_class).to be_applicable
end
it "returns true when Setting 'password_min_size' is 10" do
Setting.set('password_min_size', 10)
expect(described_class).to be_applicable
end
end
describe '#valid?' do
it "valid when password is longer than Setting 'password_min_size'" do
Setting.set('password_min_size', 2)
instance = described_class.new('good')
expect(instance).to be_valid
end
it "not valid when password is shorter than Setting 'password_min_size'" do
Setting.set('password_min_size', 2)
instance = described_class.new('g')
expect(instance).not_to be_valid
end
it "valid when password is exactly Setting 'password_min_size'" do
Setting.set('password_min_size', 4)
instance = described_class.new('good')
expect(instance).to be_valid
end
it "valid when Setting 'password_min_size' is zero" do
Setting.set('password_min_size', 0)
instance = described_class.new('good')
expect(instance).to be_valid
end
end
describe 'error' do
it "includes value of Setting 'password_min_size'" do
Setting.set('password_min_size', 123)
instance = described_class.new('')
expect(instance.error.last).to be(123)
end
end
end