solidus_paypal_braintree 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +4 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +70 -1
- data/Gemfile +2 -5
- data/app/models/solidus_paypal_braintree/gateway.rb +2 -0
- data/app/models/solidus_paypal_braintree/transaction.rb +2 -2
- data/app/models/solidus_paypal_braintree/transaction_import.rb +2 -2
- data/lib/solidus_paypal_braintree/engine.rb +5 -3
- data/lib/solidus_paypal_braintree/version.rb +1 -1
- data/solidus_paypal_braintree.gemspec +0 -1
- metadata +7 -125
- data/spec/controllers/solidus_paypal_braintree/checkouts_controller_spec.rb +0 -99
- data/spec/controllers/solidus_paypal_braintree/client_tokens_controller_spec.rb +0 -55
- data/spec/controllers/solidus_paypal_braintree/configurations_controller_spec.rb +0 -73
- data/spec/controllers/solidus_paypal_braintree/transactions_controller_spec.rb +0 -183
- data/spec/features/backend/configuration_spec.rb +0 -23
- data/spec/features/backend/new_payment_spec.rb +0 -137
- data/spec/features/frontend/braintree_credit_card_checkout_spec.rb +0 -191
- data/spec/features/frontend/paypal_checkout_spec.rb +0 -166
- data/spec/features/frontend/venmo_checkout_spec.rb +0 -189
- data/spec/fixtures/cassettes/admin/invalid_credit_card.yml +0 -63
- data/spec/fixtures/cassettes/admin/resubmit_credit_card.yml +0 -352
- data/spec/fixtures/cassettes/admin/valid_credit_card.yml +0 -412
- data/spec/fixtures/cassettes/braintree/create_profile.yml +0 -71
- data/spec/fixtures/cassettes/braintree/generate_token.yml +0 -63
- data/spec/fixtures/cassettes/braintree/token.yml +0 -63
- data/spec/fixtures/cassettes/checkout/invalid_credit_card.yml +0 -63
- data/spec/fixtures/cassettes/checkout/resubmit_credit_card.yml +0 -216
- data/spec/fixtures/cassettes/checkout/update.yml +0 -71
- data/spec/fixtures/cassettes/checkout/valid_credit_card.yml +0 -156
- data/spec/fixtures/cassettes/checkout/valid_venmo_transaction.yml +0 -599
- data/spec/fixtures/cassettes/gateway/authorize/credit_card/address.yml +0 -86
- data/spec/fixtures/cassettes/gateway/authorize/merchant_account/EUR.yml +0 -154
- data/spec/fixtures/cassettes/gateway/authorize/paypal/EUR.yml +0 -90
- data/spec/fixtures/cassettes/gateway/authorize/paypal/address.yml +0 -90
- data/spec/fixtures/cassettes/gateway/authorize.yml +0 -86
- data/spec/fixtures/cassettes/gateway/authorized_transaction.yml +0 -73
- data/spec/fixtures/cassettes/gateway/cancel/missing.yml +0 -63
- data/spec/fixtures/cassettes/gateway/cancel/refunds.yml +0 -272
- data/spec/fixtures/cassettes/gateway/cancel/void.yml +0 -201
- data/spec/fixtures/cassettes/gateway/capture.yml +0 -141
- data/spec/fixtures/cassettes/gateway/complete.yml +0 -157
- data/spec/fixtures/cassettes/gateway/credit.yml +0 -208
- data/spec/fixtures/cassettes/gateway/purchase.yml +0 -87
- data/spec/fixtures/cassettes/gateway/settled_transaction.yml +0 -140
- data/spec/fixtures/cassettes/gateway/void.yml +0 -137
- data/spec/fixtures/cassettes/source/card_type.yml +0 -267
- data/spec/fixtures/cassettes/source/last4.yml +0 -267
- data/spec/fixtures/cassettes/transaction/import/valid/capture.yml +0 -224
- data/spec/fixtures/cassettes/transaction/import/valid.yml +0 -71
- data/spec/fixtures/views/spree/orders/edit.html.erb +0 -50
- data/spec/helpers/solidus_paypal_braintree/braintree_admin_helper_spec.rb +0 -17
- data/spec/helpers/solidus_paypal_braintree/braintree_checkout_helper_spec.rb +0 -70
- data/spec/models/solidus_paypal_braintree/address_spec.rb +0 -71
- data/spec/models/solidus_paypal_braintree/avs_result_spec.rb +0 -317
- data/spec/models/solidus_paypal_braintree/gateway_spec.rb +0 -692
- data/spec/models/solidus_paypal_braintree/response_spec.rb +0 -280
- data/spec/models/solidus_paypal_braintree/source_spec.rb +0 -499
- data/spec/models/solidus_paypal_braintree/transaction_address_spec.rb +0 -235
- data/spec/models/solidus_paypal_braintree/transaction_import_spec.rb +0 -300
- data/spec/models/solidus_paypal_braintree/transaction_spec.rb +0 -85
- data/spec/models/spree/store_spec.rb +0 -14
- data/spec/requests/spree/api/orders_controller_spec.rb +0 -36
- data/spec/spec_helper.rb +0 -29
- data/spec/support/capybara.rb +0 -7
- data/spec/support/factories.rb +0 -2
- data/spec/support/gateway_helpers.rb +0 -29
- data/spec/support/order_ready_for_payment.rb +0 -37
- data/spec/support/vcr.rb +0 -42
- data/spec/support/views.rb +0 -1
@@ -1,317 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
RSpec.describe SolidusPaypalBraintree::AVSResult do
|
4
|
-
describe 'AVS response message' do
|
5
|
-
subject { described_class.build(transaction).to_hash['message'] }
|
6
|
-
|
7
|
-
context 'with avs_error_response_code' do
|
8
|
-
let(:transaction) do
|
9
|
-
instance_double('Braintree::Transaction',
|
10
|
-
avs_error_response_code: error_code,
|
11
|
-
avs_street_address_response_code: nil,
|
12
|
-
avs_postal_code_response_code: nil)
|
13
|
-
end
|
14
|
-
|
15
|
-
context 'when error code is S' do
|
16
|
-
let(:error_code) { 'S' }
|
17
|
-
|
18
|
-
it { is_expected.to eq 'U.S.-issuing bank does not support AVS.' }
|
19
|
-
end
|
20
|
-
|
21
|
-
context 'when error code is E' do
|
22
|
-
let(:error_code) { 'E' }
|
23
|
-
|
24
|
-
it { is_expected.to eq 'AVS data is invalid or AVS is not allowed for this card type.' }
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
context 'without avs_error_response_code' do
|
29
|
-
let(:transaction) do
|
30
|
-
instance_double('Braintree::Transaction',
|
31
|
-
avs_error_response_code: nil,
|
32
|
-
avs_street_address_response_code: codes.first,
|
33
|
-
avs_postal_code_response_code: codes.last)
|
34
|
-
end
|
35
|
-
|
36
|
-
context 'when street address result is M and postal code result is N' do
|
37
|
-
let(:codes) { %w(M N) }
|
38
|
-
|
39
|
-
it { is_expected.to eq 'Street address matches, but postal code does not match.' }
|
40
|
-
|
41
|
-
it {
|
42
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'M', 'postal_match' => 'N')
|
43
|
-
}
|
44
|
-
end
|
45
|
-
|
46
|
-
context 'when street address result is M and postal code result is U' do
|
47
|
-
let(:codes) { %w(M U) }
|
48
|
-
|
49
|
-
it { is_expected.to eq 'Street address matches, but postal code not verified.' }
|
50
|
-
|
51
|
-
it {
|
52
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'M', 'postal_match' => 'U')
|
53
|
-
}
|
54
|
-
end
|
55
|
-
|
56
|
-
context 'when street address result is M and postal code result is I' do
|
57
|
-
let(:codes) { %w(M I) }
|
58
|
-
|
59
|
-
it { is_expected.to eq 'Street address matches, but postal code not verified.' }
|
60
|
-
|
61
|
-
it {
|
62
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'M', 'postal_match' => 'I')
|
63
|
-
}
|
64
|
-
end
|
65
|
-
|
66
|
-
context 'when street address result is M and postal code result is A' do
|
67
|
-
let(:codes) { %w(M A) }
|
68
|
-
|
69
|
-
it { is_expected.to eq 'Street address matches, but postal code not verified.' }
|
70
|
-
|
71
|
-
it {
|
72
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'M', 'postal_match' => 'A')
|
73
|
-
}
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'when street address result is N and postal code result is N' do
|
77
|
-
let(:codes) { %w(N N) }
|
78
|
-
|
79
|
-
it { is_expected.to eq 'Street address and postal code do not match.' }
|
80
|
-
|
81
|
-
it {
|
82
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'N', 'postal_match' => 'N')
|
83
|
-
}
|
84
|
-
end
|
85
|
-
|
86
|
-
context 'when street address result is N and postal code result is U' do
|
87
|
-
let(:codes) { %w(N U) }
|
88
|
-
|
89
|
-
it { is_expected.to eq 'Street address and postal code do not match.' }
|
90
|
-
|
91
|
-
it {
|
92
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'N', 'postal_match' => 'U')
|
93
|
-
}
|
94
|
-
end
|
95
|
-
|
96
|
-
context 'when street address result is N and postal code result is I' do
|
97
|
-
let(:codes) { %w(N I) }
|
98
|
-
|
99
|
-
it { is_expected.to eq 'Street address and postal code do not match.' }
|
100
|
-
|
101
|
-
it {
|
102
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'N', 'postal_match' => 'I')
|
103
|
-
}
|
104
|
-
end
|
105
|
-
|
106
|
-
context 'when street address result is N and postal code result is A' do
|
107
|
-
let(:codes) { %w(N A) }
|
108
|
-
|
109
|
-
it { is_expected.to eq 'Street address and postal code do not match.' }
|
110
|
-
|
111
|
-
it {
|
112
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'N', 'postal_match' => 'A')
|
113
|
-
}
|
114
|
-
end
|
115
|
-
|
116
|
-
context 'when street address result is I and postal code result is N' do
|
117
|
-
let(:codes) { %w(I N) }
|
118
|
-
|
119
|
-
it { is_expected.to eq 'Street address and postal code do not match.' }
|
120
|
-
|
121
|
-
it {
|
122
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'I', 'postal_match' => 'N')
|
123
|
-
}
|
124
|
-
end
|
125
|
-
|
126
|
-
context 'when street address result is A and postal code result is N' do
|
127
|
-
let(:codes) { %w(A N) }
|
128
|
-
|
129
|
-
it { is_expected.to eq 'Street address and postal code do not match.' }
|
130
|
-
|
131
|
-
it {
|
132
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'A', 'postal_match' => 'N')
|
133
|
-
}
|
134
|
-
end
|
135
|
-
|
136
|
-
context 'when street address result is U and postal code result is U' do
|
137
|
-
let(:codes) { %w(U U) }
|
138
|
-
|
139
|
-
it { is_expected.to eq 'Address not verified.' }
|
140
|
-
|
141
|
-
it {
|
142
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'U', 'postal_match' => 'U')
|
143
|
-
}
|
144
|
-
end
|
145
|
-
|
146
|
-
context 'when street address result is U and postal code result is I' do
|
147
|
-
let(:codes) { %w(U I) }
|
148
|
-
|
149
|
-
it { is_expected.to eq 'Address not verified.' }
|
150
|
-
|
151
|
-
it {
|
152
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'U', 'postal_match' => 'I')
|
153
|
-
}
|
154
|
-
end
|
155
|
-
|
156
|
-
context 'when street address result is U and postal code result is A' do
|
157
|
-
let(:codes) { %w(U A) }
|
158
|
-
|
159
|
-
it { is_expected.to eq 'Address not verified.' }
|
160
|
-
|
161
|
-
it {
|
162
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'U', 'postal_match' => 'A')
|
163
|
-
}
|
164
|
-
end
|
165
|
-
|
166
|
-
context 'when street address result is I and postal code result is U' do
|
167
|
-
let(:codes) { %w(I U) }
|
168
|
-
|
169
|
-
it { is_expected.to eq 'Address not verified.' }
|
170
|
-
|
171
|
-
it {
|
172
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'I', 'postal_match' => 'U')
|
173
|
-
}
|
174
|
-
end
|
175
|
-
|
176
|
-
context 'when street address result is I and postal code result is I' do
|
177
|
-
let(:codes) { %w(I I) }
|
178
|
-
|
179
|
-
it { is_expected.to eq 'Address not verified.' }
|
180
|
-
|
181
|
-
it {
|
182
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'I', 'postal_match' => 'I')
|
183
|
-
}
|
184
|
-
end
|
185
|
-
|
186
|
-
context 'when street address result is I and postal code result is A' do
|
187
|
-
let(:codes) { %w(I A) }
|
188
|
-
|
189
|
-
it { is_expected.to eq 'Address not verified.' }
|
190
|
-
|
191
|
-
it {
|
192
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'I', 'postal_match' => 'A')
|
193
|
-
}
|
194
|
-
end
|
195
|
-
|
196
|
-
context 'when street address result is A and postal code result is U' do
|
197
|
-
let(:codes) { %w(A U) }
|
198
|
-
|
199
|
-
it { is_expected.to eq 'Address not verified.' }
|
200
|
-
|
201
|
-
it {
|
202
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'A', 'postal_match' => 'U')
|
203
|
-
}
|
204
|
-
end
|
205
|
-
|
206
|
-
context 'when street address result is A and postal code result is I' do
|
207
|
-
let(:codes) { %w(A I) }
|
208
|
-
|
209
|
-
it { is_expected.to eq 'Address not verified.' }
|
210
|
-
|
211
|
-
it {
|
212
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'A', 'postal_match' => 'I')
|
213
|
-
}
|
214
|
-
end
|
215
|
-
|
216
|
-
context 'when street address result is A and postal code result is A' do
|
217
|
-
let(:codes) { %w(A A) }
|
218
|
-
|
219
|
-
it { is_expected.to eq 'Address not verified.' }
|
220
|
-
|
221
|
-
it {
|
222
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'A', 'postal_match' => 'A')
|
223
|
-
}
|
224
|
-
end
|
225
|
-
|
226
|
-
context 'when street address result is M and postal code result is M' do
|
227
|
-
let(:codes) { %w(M M) }
|
228
|
-
|
229
|
-
it { is_expected.to eq 'Street address and postal code match.' }
|
230
|
-
|
231
|
-
it {
|
232
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'M', 'postal_match' => 'M')
|
233
|
-
}
|
234
|
-
end
|
235
|
-
|
236
|
-
context 'when street address result is U and postal code result is N' do
|
237
|
-
let(:codes) { %w(U N) }
|
238
|
-
|
239
|
-
it { is_expected.to eq "Street address and postal code do not match. For American Express: Card member's name, street address and postal code do not match." } # rubocop:disable Layout/LineLength
|
240
|
-
|
241
|
-
it {
|
242
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'U', 'postal_match' => 'N')
|
243
|
-
}
|
244
|
-
end
|
245
|
-
|
246
|
-
context 'when street address result is U and postal code result is M' do
|
247
|
-
let(:codes) { %w(U M) }
|
248
|
-
|
249
|
-
it { is_expected.to eq 'Postal code matches, but street address not verified.' }
|
250
|
-
|
251
|
-
it {
|
252
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'U', 'postal_match' => 'M')
|
253
|
-
}
|
254
|
-
end
|
255
|
-
|
256
|
-
context 'when street address result is I and postal code result is M' do
|
257
|
-
let(:codes) { %w(I M) }
|
258
|
-
|
259
|
-
it { is_expected.to eq 'Postal code matches, but street address not verified.' }
|
260
|
-
|
261
|
-
it {
|
262
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'I', 'postal_match' => 'M')
|
263
|
-
}
|
264
|
-
end
|
265
|
-
|
266
|
-
context 'when street address result is A and postal code result is M' do
|
267
|
-
let(:codes) { %w(A M) }
|
268
|
-
|
269
|
-
it { is_expected.to eq 'Postal code matches, but street address not verified.' }
|
270
|
-
|
271
|
-
it {
|
272
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'A', 'postal_match' => 'M')
|
273
|
-
}
|
274
|
-
end
|
275
|
-
|
276
|
-
context 'when street address result is N and postal code result is M' do
|
277
|
-
let(:codes) { %w(N M) }
|
278
|
-
|
279
|
-
it { is_expected.to eq 'Street address does not match, but 5-digit postal code matches.' }
|
280
|
-
|
281
|
-
it {
|
282
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'N', 'postal_match' => 'M')
|
283
|
-
}
|
284
|
-
end
|
285
|
-
|
286
|
-
context 'when street address response code is nil' do
|
287
|
-
let(:codes) { [nil, 'M'] }
|
288
|
-
|
289
|
-
it { is_expected.to be_nil }
|
290
|
-
|
291
|
-
it {
|
292
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => nil, 'postal_match' => 'M')
|
293
|
-
}
|
294
|
-
end
|
295
|
-
|
296
|
-
context 'when postal code response code is nil' do
|
297
|
-
let(:codes) { ['M', nil] }
|
298
|
-
|
299
|
-
it { is_expected.to be_nil }
|
300
|
-
|
301
|
-
it {
|
302
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => 'M', 'postal_match' => nil)
|
303
|
-
}
|
304
|
-
end
|
305
|
-
|
306
|
-
context 'when postal code and street address response code is nil' do
|
307
|
-
let(:codes) { [nil, nil] }
|
308
|
-
|
309
|
-
it { is_expected.to be_nil }
|
310
|
-
|
311
|
-
it {
|
312
|
-
expect(described_class.build(transaction).to_hash).to include('street_match' => nil, 'postal_match' => nil)
|
313
|
-
}
|
314
|
-
end
|
315
|
-
end
|
316
|
-
end
|
317
|
-
end
|