Improve contact phone number validation

#569
This commit is contained in:
Artur Beljajev 2017-08-08 15:13:13 +03:00
parent 7d2d34cb34
commit bc3962cdfa
4 changed files with 63 additions and 16 deletions

View file

@ -0,0 +1,29 @@
# https://en.wikipedia.org/wiki/E.164
RSpec.shared_examples 'e164 phone number' do
describe 'validation' do
it 'rejects invalid format' do
model.send("#{attribute}=", '+.1')
model.validate
expect(model.errors).to be_added(attribute, :invalid)
end
it 'rejects longer than max length' do
model.send("#{attribute}=", '1' * 18)
model.validate
expect(model.errors).to be_added(attribute, :too_long, count: 17)
end
it 'accepts valid format' do
model.send("#{attribute}=", '+123.4')
model.validate
expect(model.errors).to_not be_added(attribute, :invalid)
end
it 'accepts max length' do
model.send("#{attribute}=", '1' * 17)
model.validate
expect(model.errors).to_not be_added(attribute, :too_long, count: 17)
end
end
end