Skip to content

Commit 9346186

Browse files
authored
- Fix address verification unit tests (#293)
1 parent 99d65fb commit 9346186

9 files changed

+316
-111
lines changed

examples

Submodule examples updated 742 files

spec/address_spec.rb

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,20 @@
1515
end
1616

1717
it 'creates an address with verify param' do
18-
# We purposefully pass in slightly incorrect data to get the corrected address back once verified.
1918
address_data = Fixture.incorrect_address
20-
address_data[:verify] = true
2119

20+
# Creating normally (without specifying "verify") will make the address, perform no verifications
2221
address = client.address.create(address_data)
2322

2423
expect(address).to be_an_instance_of(EasyPost::Models::Address)
25-
expect(address.id).to match('adr_')
26-
expect(address.street1).to eq('417 MONTGOMERY ST FL 5')
27-
expect(address.verifications.zip4.errors[0].message).to eq('Invalid secondary information(Apt/Suite#)')
24+
expect(address.verifications.instance_variable_defined?(:@delivery)).to be false
25+
26+
# Creating with verify = true will make the address, perform verifications
27+
address_data[:verify] = true
28+
address = client.address.create(address_data)
29+
30+
expect(address).to be_an_instance_of(EasyPost::Models::Address)
31+
expect(address.verifications.delivery.success).to be false
2832
end
2933

3034
it 'creates an address with verify_strict param' do
@@ -39,16 +43,20 @@
3943
end
4044

4145
it 'creates an address with an array verify param' do
42-
# We purposefully pass in slightly incorrect data to get the corrected address back once verified.
4346
address_data = Fixture.incorrect_address
44-
address_data[:verify] = [true]
4547

48+
# Creating normally (without specifying "verify") will make the address, perform no verifications
4649
address = client.address.create(address_data)
4750

4851
expect(address).to be_an_instance_of(EasyPost::Models::Address)
49-
expect(address.id).to match('adr_')
50-
expect(address.street1).to eq('417 MONTGOMERY ST FL 5')
51-
expect(address.verifications.zip4.errors[0].message).to eq('Invalid secondary information(Apt/Suite#)')
52+
expect(address.verifications.instance_variable_defined?(:@delivery)).to be false
53+
54+
# Creating with verify = true will make the address, perform verifications
55+
address_data[:verify] = [true]
56+
address = client.address.create(address_data)
57+
58+
expect(address).to be_an_instance_of(EasyPost::Models::Address)
59+
expect(address.verifications.delivery.success).to be false
5260
end
5361
end
5462

@@ -104,24 +112,33 @@
104112

105113
describe '.create_and_verify' do
106114
it 'creates a verified address' do
107-
# We purposefully pass in slightly incorrect data to get the corrected address back once verified.
108-
address = client.address.create_and_verify(Fixture.incorrect_address)
115+
address = client.address.create_and_verify(Fixture.ca_address1)
109116

110117
expect(address).to be_an_instance_of(EasyPost::Models::Address)
111118
expect(address.id).to match('adr_')
112-
expect(address.street1).to eq('417 MONTGOMERY ST FL 5')
119+
expect(address.street1).to eq('388 TOWNSEND ST APT 20')
120+
end
121+
122+
it 'throws an error for invalid address verification' do
123+
address_data = Fixture.incorrect_address
124+
125+
# Creates with verify = true behind the scenes, will make the address, perform verifications
126+
# Will throw an error if the address is invalid
127+
client.address.create_and_verify(address_data)
128+
rescue EasyPost::Errors::InvalidRequestError => e
129+
expect(e.message).to eq('Unable to verify address.')
113130
end
114131
end
115132

116133
describe '.verify' do
117134
it 'verifies an already created address' do
118135
# We purposefully pass in slightly incorrect data to get the corrected address back once verified.
119-
address = client.address.create(Fixture.incorrect_address)
136+
address = client.address.create(Fixture.ca_address1)
120137
verified_address = client.address.verify(address.id)
121138

122139
expect(verified_address).to be_an_instance_of(EasyPost::Models::Address)
123140
expect(verified_address.id).to match('adr_')
124-
expect(verified_address.street1).to eq('417 MONTGOMERY ST FL 5')
141+
expect(verified_address.street1).to eq('388 TOWNSEND ST APT 20')
125142
end
126143

127144
it 'throws an error for invalid address verification' do

spec/cassettes/address/EasyPost_Services_Address_address_service_creates_an_address_with_an_array_verify_param.yml

Lines changed: 81 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/cassettes/address/EasyPost_Services_Address_address_service_creates_an_address_with_verify_param.yml

Lines changed: 81 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)