solidus_afterpay 0.2.0 → 0.3.0

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -0
  3. data/Gemfile +6 -3
  4. data/README.md +3 -0
  5. data/app/controllers/solidus_afterpay/callbacks_controller.rb +5 -1
  6. data/app/controllers/solidus_afterpay/express_callbacks_controller.rb +5 -1
  7. data/app/models/solidus_afterpay/order_component_builder.rb +1 -1
  8. data/bin/sandbox +1 -1
  9. data/lib/solidus_afterpay/configuration.rb +9 -2
  10. data/lib/solidus_afterpay/engine.rb +1 -1
  11. data/lib/solidus_afterpay/testing_support/factories.rb +1 -1
  12. data/lib/solidus_afterpay/version.rb +1 -1
  13. data/solidus_afterpay.gemspec +4 -4
  14. metadata +11 -99
  15. data/spec/fixtures/vcr_casettes/create_checkout/invalid.yml +0 -65
  16. data/spec/fixtures/vcr_casettes/create_checkout/valid.yml +0 -64
  17. data/spec/fixtures/vcr_casettes/credit/invalid.yml +0 -61
  18. data/spec/fixtures/vcr_casettes/credit/valid.yml +0 -63
  19. data/spec/fixtures/vcr_casettes/deferred/authorize/declined_payment.yml +0 -120
  20. data/spec/fixtures/vcr_casettes/deferred/authorize/invalid.yml +0 -61
  21. data/spec/fixtures/vcr_casettes/deferred/authorize/valid.yml +0 -120
  22. data/spec/fixtures/vcr_casettes/deferred/capture/invalid.yml +0 -61
  23. data/spec/fixtures/vcr_casettes/deferred/capture/valid.yml +0 -140
  24. data/spec/fixtures/vcr_casettes/deferred/void/invalid.yml +0 -61
  25. data/spec/fixtures/vcr_casettes/deferred/void/valid.yml +0 -137
  26. data/spec/fixtures/vcr_casettes/find_order/invalid.yml +0 -64
  27. data/spec/fixtures/vcr_casettes/find_order/valid.yml +0 -120
  28. data/spec/fixtures/vcr_casettes/find_payment/invalid.yml +0 -61
  29. data/spec/fixtures/vcr_casettes/find_payment/valid.yml +0 -140
  30. data/spec/fixtures/vcr_casettes/immediate/capture/declined_payment.yml +0 -120
  31. data/spec/fixtures/vcr_casettes/immediate/capture/invalid.yml +0 -61
  32. data/spec/fixtures/vcr_casettes/immediate/capture/valid.yml +0 -134
  33. data/spec/fixtures/vcr_casettes/retrieve_configuration/valid.yml +0 -67
  34. data/spec/helpers/solidus_afterpay/afterpay_helper_spec.rb +0 -39
  35. data/spec/models/solidus_afterpay/gateway_spec.rb +0 -492
  36. data/spec/models/solidus_afterpay/order_component_builder_spec.rb +0 -198
  37. data/spec/models/solidus_afterpay/payment_method_spec.rb +0 -207
  38. data/spec/models/solidus_afterpay/payment_source_spec.rb +0 -61
  39. data/spec/models/solidus_afterpay/user_agent_generator_spec.rb +0 -22
  40. data/spec/models/spree/order_spec.rb +0 -158
  41. data/spec/presenters/solidus_afterpay/order_presenter_spec.rb +0 -34
  42. data/spec/presenters/solidus_afterpay/shipping_rate_presenter_spec.rb +0 -28
  43. data/spec/requests/solidus_afterpay/callbacks_controller_spec.rb +0 -127
  44. data/spec/requests/solidus_afterpay/checkouts_controller_spec.rb +0 -258
  45. data/spec/requests/solidus_afterpay/express_callbacks_controller_spec.rb +0 -167
  46. data/spec/services/solidus_afterpay/base_service_spec.rb +0 -13
  47. data/spec/services/solidus_afterpay/shipping_rate_builder_service_spec.rb +0 -34
  48. data/spec/services/solidus_afterpay/update_order_addresses_service_spec.rb +0 -82
  49. data/spec/services/solidus_afterpay/update_order_attributes_service_spec.rb +0 -58
  50. data/spec/spec_helper.rb +0 -31
  51. data/spec/support/auth.rb +0 -15
  52. data/spec/support/cache.rb +0 -5
  53. data/spec/support/preferences.rb +0 -33
  54. data/spec/support/solidus.rb +0 -1
  55. data/spec/support/vcr.rb +0 -18
  56. data/spec/views/solidus_afterpay/express_checkout_button_spec.rb +0 -33
  57. data/spec/views/spree/shared/afterpay_messaging_spec.rb +0 -44
@@ -1,258 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe SolidusAfterpay::CheckoutsController, type: :request do
6
- describe 'POST create' do
7
- subject(:request) { post '/solidus_afterpay/checkouts.json', params: params, headers: headers }
8
-
9
- let(:order) { create(:order_with_totals, state: 'payment', user: user) }
10
- let(:payment_method) { create(:afterpay_payment_method) }
11
- let(:user) { create(:user, :with_api_key) }
12
-
13
- let(:order_number) { order.number }
14
- let(:payment_method_id) { payment_method.id }
15
-
16
- let(:params) { { order_number: order_number, payment_method_id: payment_method_id } }
17
-
18
- let(:order_token) { 'ORDER_TOKEN' }
19
- let(:gateway_response_success?) { true }
20
- let(:gateway_response_message) { 'Success message' }
21
- let(:gateway_response_error_code) { nil }
22
- let(:gateway_response_params) { { 'token' => order_token } }
23
- let(:headers) { {} }
24
-
25
- let(:gateway_response) do
26
- ActiveMerchant::Billing::Response.new(
27
- gateway_response_success?,
28
- gateway_response_message,
29
- gateway_response_params,
30
- { error_code: gateway_response_error_code }
31
- )
32
- end
33
-
34
- let(:gateway) { instance_double(SolidusAfterpay::Gateway, create_checkout: gateway_response) }
35
-
36
- before do
37
- allow(SolidusAfterpay::Gateway).to receive(:new).and_return(gateway)
38
- end
39
-
40
- context 'when the use solidus api config is set to false' do
41
- context 'when the user is logged in', with_signed_in_user: true do
42
- context 'with valid data' do
43
- before do
44
- allow(Spree::Order).to receive(:find_by!).with(number: order.number).and_return(order)
45
- request
46
- end
47
-
48
- it 'returns a 201 status code' do
49
- expect(response).to have_http_status(:created)
50
- end
51
-
52
- it 'returns the order_token' do
53
- expect(JSON.parse(response.body)['token']).to eq(order_token)
54
- end
55
-
56
- it 'returns the correct params' do
57
- expect(JSON.parse(response.body)).to include('token', 'expires', 'redirectCheckoutUrl')
58
- end
59
-
60
- context 'when no redirect URLs are passed as params' do
61
- let(:redirect_confirm_url) do
62
- "http://www.example.com/solidus_afterpay/callbacks/confirm?order_number=#{order.number}&payment_method_id=#{payment_method.id}"
63
- end
64
-
65
- let(:redirect_cancel_url) do
66
- "http://www.example.com/solidus_afterpay/callbacks/cancel?order_number=#{order.number}&payment_method_id=#{payment_method.id}"
67
- end
68
-
69
- it 'calls the create_checkout with the correct arguments' do
70
- expect(gateway).to have_received(:create_checkout).with(
71
- order,
72
- redirect_confirm_url: redirect_confirm_url,
73
- redirect_cancel_url: redirect_cancel_url,
74
- mode: nil,
75
- popup_origin_url: nil
76
- )
77
- end
78
- end
79
-
80
- context 'when redirect URLs are passed as params' do
81
- let(:redirect_confirm_url) { 'http://www.example.com/confirm_url' }
82
- let(:redirect_cancel_url) { 'http://www.example.com/cancel_url' }
83
-
84
- let(:params) do
85
- {
86
- order_number: order_number,
87
- payment_method_id: payment_method_id,
88
- redirect_confirm_url: redirect_confirm_url,
89
- redirect_cancel_url: redirect_cancel_url
90
- }
91
- end
92
-
93
- it 'calls the create_checkout with the correct arguments' do
94
- expect(gateway).to have_received(:create_checkout).with(
95
- order,
96
- redirect_confirm_url: redirect_confirm_url,
97
- redirect_cancel_url: redirect_cancel_url,
98
- mode: nil,
99
- popup_origin_url: nil
100
- )
101
- end
102
- end
103
-
104
- context 'when the mode is passed as params' do
105
- let(:params) do
106
- {
107
- order_number: order_number,
108
- payment_method_id: payment_method_id,
109
- mode: 'express'
110
- }
111
- end
112
-
113
- let(:redirect_confirm_url) do
114
- "http://www.example.com/solidus_afterpay/callbacks/confirm?order_number=#{order.number}&payment_method_id=#{payment_method.id}"
115
- end
116
-
117
- let(:redirect_cancel_url) do
118
- "http://www.example.com/solidus_afterpay/callbacks/cancel?order_number=#{order.number}&payment_method_id=#{payment_method.id}"
119
- end
120
-
121
- it 'calls the create_checkout with the correct arguments' do
122
- expect(gateway).to have_received(:create_checkout).with(
123
- order,
124
- redirect_confirm_url: redirect_confirm_url,
125
- redirect_cancel_url: redirect_cancel_url,
126
- popup_origin_url: nil,
127
- mode: 'express'
128
- )
129
- end
130
- end
131
- end
132
-
133
- context 'when the order_number is invalid' do
134
- let(:order_number) { 'INVALID_ORDER_NUMBER' }
135
-
136
- before { request }
137
-
138
- it 'returns a 404 status code' do
139
- expect(response).to have_http_status(:not_found)
140
- end
141
-
142
- it 'returns a resource not found error message' do
143
- expect(JSON.parse(response.body)['error']).to eq('The resource you were looking for could not be found.')
144
- end
145
- end
146
-
147
- context 'when the payment_method_id is invalid' do
148
- let(:payment_method_id) { 0 }
149
-
150
- before { request }
151
-
152
- it 'returns a 404 status code' do
153
- expect(response).to have_http_status(:not_found)
154
- end
155
-
156
- it 'returns a resource not found error message' do
157
- expect(JSON.parse(response.body)['error']).to eq('The resource you were looking for could not be found.')
158
- end
159
- end
160
-
161
- context 'when the payment_method_id is not passed as param' do
162
- let(:redirect_confirm_url) do
163
- "http://www.example.com/solidus_afterpay/callbacks/confirm?order_number=#{order.number}&payment_method_id=#{payment_method.id}"
164
- end
165
-
166
- let(:redirect_cancel_url) do
167
- "http://www.example.com/solidus_afterpay/callbacks/cancel?order_number=#{order.number}&payment_method_id=#{payment_method.id}"
168
- end
169
-
170
- let(:params) do
171
- {
172
- order_number: order_number,
173
- mode: 'express'
174
- }
175
- end
176
-
177
- before do
178
- payment_method
179
- request
180
- end
181
-
182
- it 'uses the first solidus afterpay payment method' do
183
- expect(gateway).to have_received(:create_checkout).with(
184
- order,
185
- redirect_confirm_url: redirect_confirm_url,
186
- redirect_cancel_url: redirect_cancel_url,
187
- popup_origin_url: nil,
188
- mode: 'express'
189
- )
190
- end
191
- end
192
-
193
- context 'when the gateway responds with error' do
194
- let(:gateway_response_success?) { false }
195
- let(:gateway_response_message) { 'Error message' }
196
- let(:gateway_response_error_code) { 'errorCode' }
197
-
198
- before { request }
199
-
200
- it 'returns a 422 status code' do
201
- expect(response).to have_http_status(:unprocessable_entity)
202
- end
203
-
204
- it 'returns a resource not found error message' do
205
- expect(JSON.parse(response.body)['error']).to eq(gateway_response_message)
206
- end
207
-
208
- it 'returns the error_code' do
209
- expect(JSON.parse(response.body)['errorCode']).to eq(gateway_response_error_code)
210
- end
211
- end
212
- end
213
-
214
- context 'when the user is a guest user', with_guest_session: true do
215
- it 'returns a 201 status code' do
216
- request
217
- expect(response).to have_http_status(:created)
218
- end
219
- end
220
-
221
- context 'when the user is not logged in' do
222
- it 'returns a 401 status code' do
223
- request
224
- expect(response).to have_http_status(:unauthorized)
225
- end
226
- end
227
- end
228
-
229
- context 'when the use solidus api config is set to true', use_solidus_api: true do
230
- context 'when the user is logged in' do
231
- let(:headers) { { Authorization: "Bearer #{user.spree_api_key}" } }
232
-
233
- it 'returns a 201 status code' do
234
- request
235
- expect(response).to have_http_status(:created)
236
- end
237
- end
238
-
239
- context 'when the user is a guest user' do
240
- let(:headers) { { 'X-Spree-Order-Token': order.guest_token } }
241
-
242
- it 'returns a 201 status code' do
243
- request
244
- expect(response).to have_http_status(:created)
245
- end
246
- end
247
-
248
- context 'when the user is not logged in' do
249
- let(:headers) { { Authorization: 'Bearer 1234' } }
250
-
251
- it 'returns a 401 status code' do
252
- request
253
- expect(response).to have_http_status(:unauthorized)
254
- end
255
- end
256
- end
257
- end
258
- end
@@ -1,167 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe SolidusAfterpay::ExpressCallbacksController, type: :request do
6
- describe 'PATCH update' do
7
- subject(:request) { patch "/solidus_afterpay/express_callbacks/#{order.number}.json", params: params }
8
-
9
- let(:user) { create(:user) }
10
- let(:order) { create(:order_with_line_items, state: 'address', line_items_count: 2, user: user) }
11
-
12
- let(:params) do
13
- {
14
- address: {
15
- name: 'John Doe',
16
- address1: '8125 Centre St',
17
- address2: '',
18
- suburb: 'Citronelle',
19
- postcode: '36522-2156',
20
- phoneNumber: '1234567',
21
- countryCode: 'US',
22
- state: 'AL'
23
- }
24
- }
25
- end
26
-
27
- context 'when the user is not authorized' do
28
- it 'returns 401 status code' do
29
- request
30
- expect(response).to have_http_status(:unauthorized)
31
- end
32
- end
33
-
34
- context 'when the user is a guest user', with_guest_session: true do
35
- it 'returns 200 status code' do
36
- request
37
- expect(response).to have_http_status(:ok)
38
- end
39
- end
40
-
41
- context 'when the user is logged in', with_signed_in_user: true do
42
- let(:update_order_address_service_result) { true }
43
-
44
- before do
45
- allow(SolidusAfterpay::UpdateOrderAddressesService)
46
- .to receive(:call)
47
- .and_return(update_order_address_service_result)
48
-
49
- allow(SolidusAfterpay.shipping_rate_builder_service_class)
50
- .to receive(:call)
51
- end
52
-
53
- it 'returns 200 status code' do
54
- request
55
- expect(response).to have_http_status(:ok)
56
- end
57
-
58
- it 'calls the update order addresses service' do
59
- request
60
- expect(SolidusAfterpay::UpdateOrderAddressesService)
61
- .to have_received(:call)
62
- .with(order: order, address_params: ActionController::Parameters.new(params[:address]))
63
- end
64
-
65
- it 'changes the order status' do
66
- expect { request }.to change { order.reload.state }.from('address').to('delivery')
67
- end
68
-
69
- it 'changes the order email if it has a dummy email' do
70
- order.update!(email: SolidusAfterpay.configuration.dummy_email)
71
- expect { request }.to change { order.reload.email }.from(SolidusAfterpay.configuration.dummy_email).to(nil)
72
- end
73
-
74
- it 'calls the shipping rate builder service class' do
75
- request
76
- expect(SolidusAfterpay.shipping_rate_builder_service_class)
77
- .to have_received(:call)
78
- .with(order: order)
79
- end
80
-
81
- context 'when the update order addresses service returns false' do
82
- let(:update_order_address_service_result) { false }
83
-
84
- it 'retuns an internal server error' do
85
- request
86
- expect(response).to have_http_status(:internal_server_error)
87
- end
88
- end
89
- end
90
- end
91
-
92
- describe 'POST create' do
93
- subject(:request) { post "/solidus_afterpay/express_callbacks/#{order.number}.json", params: params }
94
-
95
- let(:user) { create(:user) }
96
- let(:order) { create(:order_with_line_items, state: 'delivery', line_items_count: 2, user: user) }
97
- let(:payment_method) { create(:afterpay_payment_method) }
98
-
99
- let(:order_token) { 'TOKEN' }
100
- let(:update_order_attributes_service_result) { true }
101
-
102
- let(:params) do
103
- {
104
- token: order_token,
105
- order_number: order.number,
106
- payment_method_id: payment_method.id,
107
- }
108
- end
109
-
110
- before do
111
- allow(SolidusAfterpay.update_order_attributes_service_class)
112
- .to receive(:call)
113
- .and_return(update_order_attributes_service_result)
114
- end
115
-
116
- context 'when the user is not authorized' do
117
- it 'returns 401 status code' do
118
- request
119
- expect(response).to have_http_status(:unauthorized)
120
- end
121
- end
122
-
123
- context 'when the user is a guest user', with_guest_session: true do
124
- it 'returns 200 status code' do
125
- request
126
- expect(response).to have_http_status(:ok)
127
- end
128
- end
129
-
130
- context 'when the user is logged in', with_signed_in_user: true do
131
- it 'returns 200 status code' do
132
- request
133
- expect(response).to have_http_status(:ok)
134
- end
135
-
136
- it 'calls the update order attributes service class' do
137
- request
138
- expect(SolidusAfterpay.update_order_attributes_service_class)
139
- .to have_received(:call)
140
- .with(
141
- order: order,
142
- afterpay_order_token: order_token,
143
- payment_method: payment_method,
144
- request_env: an_instance_of(Hash)
145
- )
146
- end
147
-
148
- it 'changes the order state to confirm' do
149
- expect { request }.to change { order.reload.state }.from('delivery').to('confirm')
150
- end
151
-
152
- it 'redirects the user to the checkout confirm step' do
153
- request
154
- expect(JSON.parse(response.body)['redirect_url']).to eq('http://www.example.com/checkout/confirm')
155
- end
156
-
157
- context 'when the update order attributes service fails' do
158
- let(:update_order_attributes_service_result) { false }
159
-
160
- it 'returns 500 status code' do
161
- request
162
- expect(response).to have_http_status(:internal_server_error)
163
- end
164
- end
165
- end
166
- end
167
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe SolidusAfterpay::BaseService do
6
- describe '#call' do
7
- subject(:service) { described_class.new.call }
8
-
9
- it 'raises a not implemented error' do
10
- expect { service }.to raise_error(::NotImplementedError)
11
- end
12
- end
13
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe SolidusAfterpay::ShippingRateBuilderService do
6
- subject(:service) { described_class.call(order: order) }
7
-
8
- let(:order) { ::Spree::TestingSupport::OrderWalkthrough.up_to(:delivery) }
9
-
10
- context 'when the order is in a valid state' do
11
- it 'returns the afterpay compliant shipping rate object' do
12
- expect(service).to eq(
13
- [
14
- {
15
- id: order.reload.shipments.first.shipping_rates.first.id.to_s,
16
- name: 'UPS Ground',
17
- description: '$10.00',
18
- shipping_amount: '10.0',
19
- currency: 'USD',
20
- order_amount: '20.0'
21
- }
22
- ]
23
- )
24
- end
25
- end
26
-
27
- context 'when the order is not in a valid state' do
28
- before { order.shipments = [] }
29
-
30
- it 'returns an empty array' do
31
- expect(service).to be_empty
32
- end
33
- end
34
- end
@@ -1,82 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe SolidusAfterpay::UpdateOrderAddressesService do
6
- subject(:service) { described_class.call(order: order, address_params: address_params) }
7
-
8
- let(:order) { create(:order, state: 'payment', ship_address: nil, bill_address: nil) }
9
-
10
- before do
11
- country = create(:country)
12
- create(:state, country: country)
13
- end
14
-
15
- context 'when the address params are valid' do
16
- let(:address_params) do
17
- {
18
- address1: '8125 Centre St',
19
- address2: '',
20
- name: 'John Doe',
21
- suburb: 'Citronelle',
22
- postcode: '36522-2156',
23
- phoneNumber: '12345',
24
- countryCode: 'US',
25
- state: 'AL'
26
- }
27
- end
28
-
29
- it 'returns true' do
30
- expect(service).to be_truthy
31
- end
32
-
33
- it 'changes the order state to address' do
34
- expect { service }.to change { order.reload.state }.from('payment').to('address')
35
- end
36
-
37
- context 'when the order has an email set' do
38
- it 'does not change the order email' do
39
- expect { service }.not_to(change { order.reload.email })
40
- end
41
- end
42
-
43
- context 'when the order does not have an email set' do
44
- # rubocop:disable Rails/SkipsModelValidations
45
- before { order.update_columns(email: nil) }
46
- # rubocop:enable Rails/SkipsModelValidations
47
-
48
- it 'changes the order email with a dummy one' do
49
- expect { service }
50
- .to change { order.reload.email }
51
- .to(SolidusAfterpay.configuration.dummy_email)
52
- end
53
- end
54
- end
55
-
56
- context 'when the address params are not valid' do
57
- let(:address_params) do
58
- {
59
- address1: '',
60
- address2: '',
61
- name: 'John Doe',
62
- suburb: '',
63
- postcode: '36522-2156',
64
- phoneNumber: '12345',
65
- countryCode: 'US',
66
- state: 'AL'
67
- }
68
- end
69
-
70
- it 'returns false' do
71
- expect(service).to be_falsey
72
- end
73
-
74
- it 'changes the order state to address' do
75
- expect { service }.not_to(change { order.reload.state })
76
- end
77
-
78
- it 'does not change the order email' do
79
- expect { service }.not_to(change { order.reload.email })
80
- end
81
- end
82
- end
@@ -1,58 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe SolidusAfterpay::UpdateOrderAttributesService do
6
- subject(:service) do
7
- described_class.call(
8
- order: order,
9
- afterpay_order_token: afterpay_order_token,
10
- payment_method: payment_method,
11
- request_env: 'env'
12
- )
13
- end
14
-
15
- let!(:order) { create(:order_with_line_items, line_items_count: 2, state: 'delivery') }
16
- let!(:payment_method) { create(:afterpay_payment_method) }
17
-
18
- before do
19
- allow(Spree::ShippingRate).to receive(:find).and_return(Spree::ShippingRate.first)
20
- allow(order).to receive(:available_payment_methods).and_return(Spree::PaymentMethod.all)
21
- end
22
-
23
- context 'when the afterpay find order is a success', vcr: 'find_order/valid' do
24
- let(:afterpay_order_token) { '002.cb9qevbs1o4el3adh817hqkotkbv4b8u1jkekofd3nb2m8lu' }
25
-
26
- it 'returns true' do
27
- expect(service).to be_truthy
28
- end
29
-
30
- it 'updates the order email with the Afterpay order email' do
31
- expect { service }.to change { order.reload.email }.to('andreavassallo@nebulab.com')
32
- end
33
-
34
- # rubocop:disable RSpec/MultipleExpectations
35
- it 'updates the payments information with the afterpay payment information' do
36
- expect { service }.to change { order.payments.reload.count }.from(0).to(1)
37
- expect(order.payments.first.amount).to eq(53.53)
38
- expect(order.payments.first.source.token).to eq(afterpay_order_token)
39
- end
40
- # rubocop:enable RSpec/MultipleExpectations
41
- end
42
-
43
- context 'when the afterpay find order is a failure', vcr: 'find_order/invalid' do
44
- let(:afterpay_order_token) { 'INVALID_TOKEN' }
45
-
46
- it 'returns false' do
47
- expect(service).to be_falsey
48
- end
49
-
50
- it 'does not change the order email' do
51
- expect { service }.not_to(change { order.reload.email })
52
- end
53
-
54
- it 'does not change the payments count' do
55
- expect { service }.not_to(change { order.payments.reload.count })
56
- end
57
- end
58
- end
data/spec/spec_helper.rb DELETED
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Configure Rails Environment
4
- ENV['RAILS_ENV'] = 'test'
5
-
6
- # Run Coverage report
7
- require 'solidus_dev_support/rspec/coverage'
8
-
9
- # Create the dummy app if it's still missing.
10
- dummy_env = "#{__dir__}/dummy/config/environment.rb"
11
- system 'bin/rake extension:test_app' unless File.exist? dummy_env
12
- require dummy_env
13
-
14
- # Requires factories and other useful helpers defined in spree_core.
15
- require 'solidus_dev_support/rspec/feature_helper'
16
-
17
- # Requires supporting ruby files with custom matchers and macros, etc,
18
- # in spec/support/ and its subdirectories.
19
- Dir["#{__dir__}/support/**/*.rb"].sort.each { |f| require f }
20
-
21
- # Requires factories defined in lib/solidus_afterpay/testing_support/factories.rb
22
- SolidusDevSupport::TestingSupport::Factories.load_for(SolidusAfterpay::Engine)
23
-
24
- RSpec.configure do |config|
25
- config.infer_spec_type_from_file_location!
26
- config.use_transactional_fixtures = false
27
-
28
- if Spree.solidus_gem_version < Gem::Version.new('2.11')
29
- config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :system
30
- end
31
- end
data/spec/support/auth.rb DELETED
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.configure do |config|
4
- config.include Devise::Test::IntegrationHelpers, type: :request
5
-
6
- config.before(:each, with_signed_in_user: true) { login_as user }
7
-
8
- config.before(:each, with_guest_session: true) do
9
- # rubocop:disable RSpec/AnyInstance
10
- allow_any_instance_of(ActionDispatch::Cookies::CookieJar).to(
11
- receive(:signed).and_return({ guest_token: order.guest_token })
12
- )
13
- # rubocop:enable RSpec/AnyInstance
14
- end
15
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.configure do |config|
4
- config.after { Rails.cache.clear }
5
- end