solidus_paypal_braintree 1.1.0 → 1.1.2

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