diff options
author | Thong Kuah <tkuah@gitlab.com> | 2019-04-11 09:29:07 +0300 |
---|---|---|
committer | James Lopez <james@gitlab.com> | 2019-04-11 09:29:07 +0300 |
commit | d119d3d1b25aac661e6251addf87b280bd37f0c5 (patch) | |
tree | aeaf0d9503326ec7f51968e8d1de48d83ce90503 /spec/support/shared_examples/url_validator_examples.rb | |
parent | 79bf4bdaad438dc0f82771b102f3c07225a428da (diff) |
Align UrlValidator to validate_url gem implementation.
Renamed UrlValidator to AddressableUrlValidator to avoid 'url:' naming collision with ActiveModel::Validations::UrlValidator in 'validates' statement.
Make use of the options attribute of the parent class ActiveModel::EachValidator.
Add more options: allow_nil, allow_blank, message.
Renamed 'protocols' option to 'schemes' to match the option naming from UrlValidator.
Diffstat (limited to 'spec/support/shared_examples/url_validator_examples.rb')
-rw-r--r-- | spec/support/shared_examples/url_validator_examples.rb | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/spec/support/shared_examples/url_validator_examples.rb b/spec/support/shared_examples/url_validator_examples.rb index 1f7e2f7ff79..25277ccd9aa 100644 --- a/spec/support/shared_examples/url_validator_examples.rb +++ b/spec/support/shared_examples/url_validator_examples.rb @@ -1,15 +1,15 @@ -RSpec.shared_examples 'url validator examples' do |protocols| +RSpec.shared_examples 'url validator examples' do |schemes| let(:validator) { described_class.new(attributes: [:link_url], **options) } let!(:badge) { build(:badge, link_url: 'http://www.example.com') } - subject { validator.validate_each(badge, :link_url, badge.link_url) } + subject { validator.validate(badge) } - describe '#validates_each' do + describe '#validate' do context 'with no options' do let(:options) { {} } - it "allows #{protocols.join(',')} protocols by default" do - expect(validator.send(:default_options)[:protocols]).to eq protocols + it "allows #{schemes.join(',')} schemes by default" do + expect(validator.options[:schemes]).to eq schemes end it 'checks that the url structure is valid' do @@ -17,25 +17,25 @@ RSpec.shared_examples 'url validator examples' do |protocols| subject - expect(badge.errors.empty?).to be false + expect(badge.errors).to be_present end end - context 'with protocols' do - let(:options) { { protocols: %w[http] } } + context 'with schemes' do + let(:options) { { schemes: %w(http) } } - it 'allows urls with the defined protocols' do + it 'allows urls with the defined schemes' do subject - expect(badge.errors.empty?).to be true + expect(badge.errors).to be_empty end - it 'add error if the url protocol does not match the selected ones' do + it 'add error if the url scheme does not match the selected ones' do badge.link_url = 'https://www.example.com' subject - expect(badge.errors.empty?).to be false + expect(badge.errors).to be_present end end end |