solidus_paypal_braintree 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +4 -0
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +70 -1
  5. data/Gemfile +2 -5
  6. data/app/models/solidus_paypal_braintree/gateway.rb +2 -0
  7. data/app/models/solidus_paypal_braintree/transaction.rb +2 -2
  8. data/app/models/solidus_paypal_braintree/transaction_import.rb +2 -2
  9. data/lib/solidus_paypal_braintree/engine.rb +5 -3
  10. data/lib/solidus_paypal_braintree/version.rb +1 -1
  11. data/solidus_paypal_braintree.gemspec +0 -1
  12. metadata +7 -125
  13. data/spec/controllers/solidus_paypal_braintree/checkouts_controller_spec.rb +0 -99
  14. data/spec/controllers/solidus_paypal_braintree/client_tokens_controller_spec.rb +0 -55
  15. data/spec/controllers/solidus_paypal_braintree/configurations_controller_spec.rb +0 -73
  16. data/spec/controllers/solidus_paypal_braintree/transactions_controller_spec.rb +0 -183
  17. data/spec/features/backend/configuration_spec.rb +0 -23
  18. data/spec/features/backend/new_payment_spec.rb +0 -137
  19. data/spec/features/frontend/braintree_credit_card_checkout_spec.rb +0 -191
  20. data/spec/features/frontend/paypal_checkout_spec.rb +0 -166
  21. data/spec/features/frontend/venmo_checkout_spec.rb +0 -189
  22. data/spec/fixtures/cassettes/admin/invalid_credit_card.yml +0 -63
  23. data/spec/fixtures/cassettes/admin/resubmit_credit_card.yml +0 -352
  24. data/spec/fixtures/cassettes/admin/valid_credit_card.yml +0 -412
  25. data/spec/fixtures/cassettes/braintree/create_profile.yml +0 -71
  26. data/spec/fixtures/cassettes/braintree/generate_token.yml +0 -63
  27. data/spec/fixtures/cassettes/braintree/token.yml +0 -63
  28. data/spec/fixtures/cassettes/checkout/invalid_credit_card.yml +0 -63
  29. data/spec/fixtures/cassettes/checkout/resubmit_credit_card.yml +0 -216
  30. data/spec/fixtures/cassettes/checkout/update.yml +0 -71
  31. data/spec/fixtures/cassettes/checkout/valid_credit_card.yml +0 -156
  32. data/spec/fixtures/cassettes/checkout/valid_venmo_transaction.yml +0 -599
  33. data/spec/fixtures/cassettes/gateway/authorize/credit_card/address.yml +0 -86
  34. data/spec/fixtures/cassettes/gateway/authorize/merchant_account/EUR.yml +0 -154
  35. data/spec/fixtures/cassettes/gateway/authorize/paypal/EUR.yml +0 -90
  36. data/spec/fixtures/cassettes/gateway/authorize/paypal/address.yml +0 -90
  37. data/spec/fixtures/cassettes/gateway/authorize.yml +0 -86
  38. data/spec/fixtures/cassettes/gateway/authorized_transaction.yml +0 -73
  39. data/spec/fixtures/cassettes/gateway/cancel/missing.yml +0 -63
  40. data/spec/fixtures/cassettes/gateway/cancel/refunds.yml +0 -272
  41. data/spec/fixtures/cassettes/gateway/cancel/void.yml +0 -201
  42. data/spec/fixtures/cassettes/gateway/capture.yml +0 -141
  43. data/spec/fixtures/cassettes/gateway/complete.yml +0 -157
  44. data/spec/fixtures/cassettes/gateway/credit.yml +0 -208
  45. data/spec/fixtures/cassettes/gateway/purchase.yml +0 -87
  46. data/spec/fixtures/cassettes/gateway/settled_transaction.yml +0 -140
  47. data/spec/fixtures/cassettes/gateway/void.yml +0 -137
  48. data/spec/fixtures/cassettes/source/card_type.yml +0 -267
  49. data/spec/fixtures/cassettes/source/last4.yml +0 -267
  50. data/spec/fixtures/cassettes/transaction/import/valid/capture.yml +0 -224
  51. data/spec/fixtures/cassettes/transaction/import/valid.yml +0 -71
  52. data/spec/fixtures/views/spree/orders/edit.html.erb +0 -50
  53. data/spec/helpers/solidus_paypal_braintree/braintree_admin_helper_spec.rb +0 -17
  54. data/spec/helpers/solidus_paypal_braintree/braintree_checkout_helper_spec.rb +0 -70
  55. data/spec/models/solidus_paypal_braintree/address_spec.rb +0 -71
  56. data/spec/models/solidus_paypal_braintree/avs_result_spec.rb +0 -317
  57. data/spec/models/solidus_paypal_braintree/gateway_spec.rb +0 -692
  58. data/spec/models/solidus_paypal_braintree/response_spec.rb +0 -280
  59. data/spec/models/solidus_paypal_braintree/source_spec.rb +0 -499
  60. data/spec/models/solidus_paypal_braintree/transaction_address_spec.rb +0 -235
  61. data/spec/models/solidus_paypal_braintree/transaction_import_spec.rb +0 -300
  62. data/spec/models/solidus_paypal_braintree/transaction_spec.rb +0 -85
  63. data/spec/models/spree/store_spec.rb +0 -14
  64. data/spec/requests/spree/api/orders_controller_spec.rb +0 -36
  65. data/spec/spec_helper.rb +0 -29
  66. data/spec/support/capybara.rb +0 -7
  67. data/spec/support/factories.rb +0 -2
  68. data/spec/support/gateway_helpers.rb +0 -29
  69. data/spec/support/order_ready_for_payment.rb +0 -37
  70. data/spec/support/vcr.rb +0 -42
  71. 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