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.
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