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,280 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
RSpec.describe SolidusPaypalBraintree::Response do
|
4
|
-
let(:failed_transaction) { nil }
|
5
|
-
let(:error) do
|
6
|
-
instance_double(
|
7
|
-
'Braintree::ValidationError',
|
8
|
-
code: '12345',
|
9
|
-
message: "Cannot refund a transaction unless it is settled."
|
10
|
-
)
|
11
|
-
end
|
12
|
-
|
13
|
-
let(:error_result) do
|
14
|
-
instance_double(
|
15
|
-
'Braintree::ErrorResult',
|
16
|
-
success?: false,
|
17
|
-
errors: [error],
|
18
|
-
transaction: failed_transaction,
|
19
|
-
params: { some: 'error' }
|
20
|
-
)
|
21
|
-
end
|
22
|
-
|
23
|
-
let(:error_response) do
|
24
|
-
described_class.build(error_result)
|
25
|
-
end
|
26
|
-
|
27
|
-
let(:successful_result) do
|
28
|
-
transaction = instance_double(
|
29
|
-
'Braintree::Transaction',
|
30
|
-
status: 'ok',
|
31
|
-
id: 'abcdef',
|
32
|
-
avs_error_response_code: nil,
|
33
|
-
avs_street_address_response_code: 'M',
|
34
|
-
avs_postal_code_response_code: 'M',
|
35
|
-
cvv_response_code: 'I'
|
36
|
-
)
|
37
|
-
|
38
|
-
instance_double(
|
39
|
-
'Braintree::SuccessfulResult',
|
40
|
-
success?: true,
|
41
|
-
transaction: transaction
|
42
|
-
)
|
43
|
-
end
|
44
|
-
|
45
|
-
let(:successful_response) do
|
46
|
-
described_class.build(successful_result)
|
47
|
-
end
|
48
|
-
|
49
|
-
describe '.new' do
|
50
|
-
it 'is private' do
|
51
|
-
expect { described_class.new }.to raise_error(/private method/)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
describe '.build' do
|
56
|
-
it { expect(error_response).to be_a ActiveMerchant::Billing::Response }
|
57
|
-
it { expect(successful_response).to be_a ActiveMerchant::Billing::Response }
|
58
|
-
end
|
59
|
-
|
60
|
-
describe '#success?' do
|
61
|
-
it { expect(error_response.success?).to be false }
|
62
|
-
it { expect(successful_response.success?).to be true }
|
63
|
-
end
|
64
|
-
|
65
|
-
describe "#message" do
|
66
|
-
context "with a success response" do
|
67
|
-
subject { successful_response.message }
|
68
|
-
|
69
|
-
it { is_expected.to eq "ok" }
|
70
|
-
end
|
71
|
-
|
72
|
-
context "with an error response" do
|
73
|
-
subject { error_response.message }
|
74
|
-
|
75
|
-
context "with a Braintree error" do
|
76
|
-
it { is_expected.to eq "Cannot refund a transaction unless it is settled. (12345)" }
|
77
|
-
end
|
78
|
-
|
79
|
-
context "with a settlement_declined status" do
|
80
|
-
let(:error) { nil }
|
81
|
-
let(:failed_transaction) do
|
82
|
-
instance_double(
|
83
|
-
'Braintree::Transaction',
|
84
|
-
id: 'abcdef',
|
85
|
-
status: "settlement_declined",
|
86
|
-
processor_settlement_response_code: "4001",
|
87
|
-
processor_settlement_response_text: "Settlement Declined",
|
88
|
-
avs_error_response_code: nil,
|
89
|
-
avs_street_address_response_code: nil,
|
90
|
-
avs_postal_code_response_code: nil,
|
91
|
-
cvv_response_code: nil
|
92
|
-
)
|
93
|
-
end
|
94
|
-
|
95
|
-
it { is_expected.to eq "Settlement Declined (4001)" }
|
96
|
-
end
|
97
|
-
|
98
|
-
context "with a gateway_rejected status" do
|
99
|
-
let(:error) { nil }
|
100
|
-
let(:failed_transaction) do
|
101
|
-
instance_double(
|
102
|
-
'Braintree::Transaction',
|
103
|
-
id: 'abcdef',
|
104
|
-
status: "gateway_rejected",
|
105
|
-
gateway_rejection_reason: "cvv",
|
106
|
-
avs_error_response_code: nil,
|
107
|
-
avs_street_address_response_code: nil,
|
108
|
-
avs_postal_code_response_code: nil,
|
109
|
-
cvv_response_code: nil
|
110
|
-
)
|
111
|
-
end
|
112
|
-
|
113
|
-
it { is_expected.to eq "CVV check failed." }
|
114
|
-
end
|
115
|
-
|
116
|
-
context "with a processor_declined status" do
|
117
|
-
let(:error) { nil }
|
118
|
-
let(:failed_transaction) do
|
119
|
-
instance_double(
|
120
|
-
'Braintree::Transaction',
|
121
|
-
id: 'abcdef',
|
122
|
-
status: "processor_declined",
|
123
|
-
processor_response_code: '2001',
|
124
|
-
processor_response_text: 'Insufficient Funds',
|
125
|
-
avs_error_response_code: nil,
|
126
|
-
avs_street_address_response_code: nil,
|
127
|
-
avs_postal_code_response_code: nil,
|
128
|
-
cvv_response_code: nil
|
129
|
-
)
|
130
|
-
end
|
131
|
-
|
132
|
-
it { is_expected.to eq "Insufficient Funds (2001)" }
|
133
|
-
end
|
134
|
-
|
135
|
-
context 'with other transaction status' do
|
136
|
-
let(:error) { nil }
|
137
|
-
let(:failed_transaction) do
|
138
|
-
instance_double(
|
139
|
-
'Braintree::Transaction',
|
140
|
-
id: 'abcdef',
|
141
|
-
status: "authorization_expired",
|
142
|
-
avs_error_response_code: nil,
|
143
|
-
avs_street_address_response_code: nil,
|
144
|
-
avs_postal_code_response_code: nil,
|
145
|
-
cvv_response_code: nil
|
146
|
-
)
|
147
|
-
end
|
148
|
-
|
149
|
-
it { is_expected.to eq 'Payment authorization has expired.' }
|
150
|
-
end
|
151
|
-
|
152
|
-
context 'with other transaction status that is not translated' do
|
153
|
-
let(:error) { nil }
|
154
|
-
let(:failed_transaction) do
|
155
|
-
instance_double(
|
156
|
-
'Braintree::Transaction',
|
157
|
-
id: 'abcdef',
|
158
|
-
status: "something_bad_happened",
|
159
|
-
avs_error_response_code: nil,
|
160
|
-
avs_street_address_response_code: nil,
|
161
|
-
avs_postal_code_response_code: nil,
|
162
|
-
cvv_response_code: nil
|
163
|
-
)
|
164
|
-
end
|
165
|
-
|
166
|
-
it { is_expected.to eq 'Something bad happened' }
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
describe '#avs_result' do
|
172
|
-
context 'with a successful result' do
|
173
|
-
subject { described_class.build(successful_result).avs_result }
|
174
|
-
|
175
|
-
it 'includes AVS response code' do
|
176
|
-
expect(subject['code']).to eq 'M'
|
177
|
-
end
|
178
|
-
|
179
|
-
it 'includes AVS response message' do
|
180
|
-
expect(subject['message']).to eq 'Street address and postal code match.'
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
context 'with an error result' do
|
185
|
-
subject { described_class.build(error_result).avs_result }
|
186
|
-
|
187
|
-
let(:failed_transaction) do
|
188
|
-
instance_double(
|
189
|
-
'Braintree::Transaction',
|
190
|
-
id: 'abcdef',
|
191
|
-
avs_error_response_code: 'E',
|
192
|
-
avs_street_address_response_code: nil,
|
193
|
-
avs_postal_code_response_code: nil,
|
194
|
-
cvv_response_code: nil
|
195
|
-
)
|
196
|
-
end
|
197
|
-
|
198
|
-
it 'includes AVS response code' do
|
199
|
-
expect(subject['code']).to eq 'E'
|
200
|
-
end
|
201
|
-
|
202
|
-
it 'includes AVS response message' do
|
203
|
-
expect(subject['message']).to eq 'AVS data is invalid or AVS is not allowed for this card type.'
|
204
|
-
end
|
205
|
-
|
206
|
-
context 'without transaction' do
|
207
|
-
let(:failed_transaction) { nil }
|
208
|
-
|
209
|
-
it 'includes no AVS response' do
|
210
|
-
expect(subject['message']).to be_nil
|
211
|
-
expect(subject['code']).to be_nil
|
212
|
-
end
|
213
|
-
end
|
214
|
-
end
|
215
|
-
end
|
216
|
-
|
217
|
-
describe '#cvv_result' do
|
218
|
-
context 'with a successful result' do
|
219
|
-
subject { described_class.build(successful_result).cvv_result }
|
220
|
-
|
221
|
-
it 'does not include CVV response code' do
|
222
|
-
expect(subject['code']).to be_nil
|
223
|
-
end
|
224
|
-
|
225
|
-
it 'does not include CVV response message' do
|
226
|
-
expect(subject['message']).to be_nil
|
227
|
-
end
|
228
|
-
end
|
229
|
-
|
230
|
-
context 'with an error result' do
|
231
|
-
subject { described_class.build(error_result).cvv_result }
|
232
|
-
|
233
|
-
let(:failed_transaction) do
|
234
|
-
instance_double(
|
235
|
-
'Braintree::Transaction',
|
236
|
-
id: 'abcdef',
|
237
|
-
avs_error_response_code: nil,
|
238
|
-
avs_street_address_response_code: nil,
|
239
|
-
avs_postal_code_response_code: nil,
|
240
|
-
cvv_response_code: 'N'
|
241
|
-
)
|
242
|
-
end
|
243
|
-
|
244
|
-
it 'includes CVV response code' do
|
245
|
-
expect(subject['code']).to eq 'N'
|
246
|
-
end
|
247
|
-
|
248
|
-
it 'includes CVV response message' do
|
249
|
-
expect(subject['message']).to eq 'CVV does not match'
|
250
|
-
end
|
251
|
-
|
252
|
-
context 'without transaction' do
|
253
|
-
let(:failed_transaction) { nil }
|
254
|
-
|
255
|
-
it 'includes no CVV response' do
|
256
|
-
expect(subject['message']).to be_nil
|
257
|
-
expect(subject['code']).to be_nil
|
258
|
-
end
|
259
|
-
end
|
260
|
-
end
|
261
|
-
end
|
262
|
-
|
263
|
-
describe '#params' do
|
264
|
-
context "with an error response" do
|
265
|
-
subject { error_response.params }
|
266
|
-
|
267
|
-
it 'includes request params' do
|
268
|
-
expect(subject).to eq({ 'some' => 'error' })
|
269
|
-
end
|
270
|
-
end
|
271
|
-
end
|
272
|
-
|
273
|
-
describe '#authorization' do
|
274
|
-
it 'is whatever the b.t. transaction id was' do
|
275
|
-
expect(successful_response.authorization).to eq 'abcdef'
|
276
|
-
end
|
277
|
-
|
278
|
-
it { expect(error_response.authorization).to be_nil }
|
279
|
-
end
|
280
|
-
end
|