From 9e8f806a43bf166b64caa49ae9492d32d94cdf79 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 5 Aug 2017 19:19:25 +0300 Subject: [PATCH] Extract phone validation from contact spec #569 --- spec/models/contact/phone_spec.rb | 37 +++++++++++++++++++++++++++++++ spec/models/contact_spec.rb | 34 ---------------------------- 2 files changed, 37 insertions(+), 34 deletions(-) create mode 100644 spec/models/contact/phone_spec.rb diff --git a/spec/models/contact/phone_spec.rb b/spec/models/contact/phone_spec.rb new file mode 100644 index 000000000..78b07d164 --- /dev/null +++ b/spec/models/contact/phone_spec.rb @@ -0,0 +1,37 @@ +require 'rails_helper' + +RSpec.describe Contact do + describe 'phone validation', db: false do + let(:contact) { described_class.new } + + it 'rejects absent' do + contact.phone = nil + contact.validate + expect(contact.errors).to have_key(:phone) + end + + it 'rejects invalid format' do + contact.phone = '123' + contact.validate + expect(contact.errors).to have_key(:phone) + end + + it 'rejects all zeros in country code' do + contact.phone = '+000.1' + contact.validate + expect(contact.errors).to have_key(:phone) + end + + it 'rejects all zeros in phone number' do + contact.phone = '+123.0' + contact.validate + expect(contact.errors).to have_key(:phone) + end + + it 'accepts valid' do + contact.phone = '+123.4' + contact.validate + expect(contact.errors).to_not have_key(:phone) + end + end +end diff --git a/spec/models/contact_spec.rb b/spec/models/contact_spec.rb index c7cd38719..8e2dd18d3 100644 --- a/spec/models/contact_spec.rb +++ b/spec/models/contact_spec.rb @@ -455,40 +455,6 @@ RSpec.describe Contact do end end - describe 'phone validation', db: false do - let(:contact) { described_class.new } - - it 'rejects absent' do - contact.phone = nil - contact.validate - expect(contact.errors).to have_key(:phone) - end - - it 'rejects invalid format' do - contact.phone = '123' - contact.validate - expect(contact.errors).to have_key(:phone) - end - - it 'rejects all zeros in country code' do - contact.phone = '+000.1' - contact.validate - expect(contact.errors).to have_key(:phone) - end - - it 'rejects all zeros in phone number' do - contact.phone = '+123.0' - contact.validate - expect(contact.errors).to have_key(:phone) - end - - it 'accepts valid' do - contact.phone = '+123.4' - contact.validate - expect(contact.errors).to_not have_key(:phone) - end - end - describe '#remove_address' do let(:contact) { described_class.new(city: 'test', street: 'test',