Sha256: e34e09aefe18545f132ec29805e00f4aa47ed4e89a9eca884424eede874424ab
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
require 'spec_helper' RSpec.describe Addresses::Zipcode, type: :model do describe 'validation' do it { is_expected.to validate_presence_of(:number) } it { is_expected.to validate_presence_of(:city_id) } it { is_expected.to validate_presence_of(:state_id) } end describe 'association' do it { is_expected.to belong_to(:city) } it { is_expected.to belong_to(:neighborhood) } it { is_expected.to have_many(:addresses) } end describe '.find_or_create_by_service', :vcr do context 'when the zipcode exists in database' do let!(:zipcode) { create :zipcode } let!(:searched_zipcode) { Addresses::Zipcode.find_or_create_by_service(zipcode.number) } it { expect(searched_zipcode).to eq(zipcode) } end context 'when the zipcode not exists in database' do context 'but the zipcode was found in web service' do let!(:searched_zipcode) { Addresses::Zipcode.find_or_create_by_service('05012010') } it { expect(searched_zipcode).to be_a_instance_of(Addresses::Zipcode) } it { expect(searched_zipcode.number).to eq('05012010') } it { expect(searched_zipcode.street).to eq('Rua Ministro Gastão Mesquita') } end context 'and the zipcode was not found in web service' do let!(:searched_zipcode) { Addresses::Zipcode.find_or_create_by_service('99999999') } it { expect(searched_zipcode).to be_nil } end end end describe '#to_s' do let!(:zipcode) { create :zipcode } it { expect(zipcode.to_s).to eq("Street name, Neighborhood name. City name - State acronym") } end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
addresses-1.0.2 | spec/models/addresses/zipcode_spec.rb |
addresses-1.0.1 | spec/models/addresses/zipcode_spec.rb |