|
15 | 15 | end
|
16 | 16 |
|
17 | 17 | it 'creates an address with verify param' do
|
18 |
| - # We purposefully pass in slightly incorrect data to get the corrected address back once verified. |
19 | 18 | address_data = Fixture.incorrect_address
|
20 |
| - address_data[:verify] = true |
21 | 19 |
|
| 20 | + # Creating normally (without specifying "verify") will make the address, perform no verifications |
22 | 21 | address = client.address.create(address_data)
|
23 | 22 |
|
24 | 23 | 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 |
28 | 32 | end
|
29 | 33 |
|
30 | 34 | it 'creates an address with verify_strict param' do
|
|
39 | 43 | end
|
40 | 44 |
|
41 | 45 | 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. |
43 | 46 | address_data = Fixture.incorrect_address
|
44 |
| - address_data[:verify] = [true] |
45 | 47 |
|
| 48 | + # Creating normally (without specifying "verify") will make the address, perform no verifications |
46 | 49 | address = client.address.create(address_data)
|
47 | 50 |
|
48 | 51 | 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 |
52 | 60 | end
|
53 | 61 | end
|
54 | 62 |
|
|
104 | 112 |
|
105 | 113 | describe '.create_and_verify' do
|
106 | 114 | 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) |
109 | 116 |
|
110 | 117 | expect(address).to be_an_instance_of(EasyPost::Models::Address)
|
111 | 118 | 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.') |
113 | 130 | end
|
114 | 131 | end
|
115 | 132 |
|
116 | 133 | describe '.verify' do
|
117 | 134 | it 'verifies an already created address' do
|
118 | 135 | # 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) |
120 | 137 | verified_address = client.address.verify(address.id)
|
121 | 138 |
|
122 | 139 | expect(verified_address).to be_an_instance_of(EasyPost::Models::Address)
|
123 | 140 | 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') |
125 | 142 | end
|
126 | 143 |
|
127 | 144 | it 'throws an error for invalid address verification' do
|
|
0 commit comments