solidus_stripe 5.0.0.alpha.1 → 5.0.0.rc.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +15 -8
  3. data/README.md +94 -52
  4. data/app/models/solidus_stripe/gateway.rb +21 -23
  5. data/app/models/solidus_stripe/payment_intent.rb +27 -14
  6. data/app/subscribers/solidus_stripe/webhook/charge_subscriber.rb +3 -3
  7. data/app/subscribers/solidus_stripe/webhook/payment_intent_subscriber.rb +5 -5
  8. data/app/views/spree/admin/payments/source_forms/existing_payment/_stripe.html.erb +6 -1
  9. data/db/migrate/20230306105520_create_solidus_stripe_payment_intents.rb +6 -2
  10. data/db/migrate/20230308122414_create_solidus_stripe_slug_entries.rb +12 -0
  11. data/db/migrate/20230313150008_create_solidus_stripe_customers.rb +2 -3
  12. data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_payment_controller.js +3 -3
  13. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/_stripe.html.erb +6 -1
  14. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/payment/_stripe.html.erb +49 -14
  15. data/lib/generators/solidus_stripe/install/templates/app/views/orders/payment_info/_stripe.html.erb +15 -3
  16. data/lib/solidus_stripe/refunds_synchronizer.rb +26 -24
  17. data/lib/solidus_stripe/testing_support/factories.rb +18 -18
  18. data/lib/solidus_stripe/version.rb +1 -1
  19. data/lib/solidus_stripe/webhook/event.rb +6 -5
  20. data/solidus_stripe.gemspec +1 -1
  21. data/spec/lib/solidus_stripe/refunds_synchronizer_spec.rb +47 -47
  22. data/spec/lib/solidus_stripe/webhook/event_spec.rb +10 -10
  23. data/spec/models/solidus_stripe/customer_spec.rb +3 -3
  24. data/spec/models/solidus_stripe/gateway_spec.rb +52 -54
  25. data/spec/models/solidus_stripe/payment_intent_spec.rb +62 -1
  26. data/spec/models/solidus_stripe/payment_method_spec.rb +16 -16
  27. data/spec/models/solidus_stripe/payment_source_spec.rb +3 -3
  28. data/spec/requests/solidus_stripe/intents_controller_spec.rb +2 -2
  29. data/spec/requests/solidus_stripe/webhooks_controller/charge/refunded_spec.rb +1 -1
  30. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/canceled_spec.rb +1 -1
  31. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/payment_failed_spec.rb +1 -1
  32. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/succeeded_spec.rb +1 -1
  33. data/spec/requests/solidus_stripe/webhooks_controller_spec.rb +8 -4
  34. data/spec/subscribers/solidus_stripe/webhook/charge_subscriber_spec.rb +1 -1
  35. data/spec/subscribers/solidus_stripe/webhook/payment_intent_subscriber_spec.rb +12 -12
  36. data/spec/support/solidus_stripe/backend_test_helper.rb +17 -42
  37. data/spec/support/solidus_stripe/checkout_test_helper.rb +27 -1
  38. data/spec/support/solidus_stripe/webhook/event_with_context_factory.rb +1 -1
  39. data/spec/system/backend/solidus_stripe/orders/payments_spec.rb +47 -21
  40. data/spec/system/frontend/solidus_stripe/checkout_spec.rb +19 -0
  41. metadata +6 -11
  42. data/db/migrate/20230303154931_create_solidus_stripe_setup_intent.rb +0 -10
  43. data/db/migrate/20230308122414_create_solidus_stripe_webhook_endpoints.rb +0 -10
  44. data/db/migrate/20230310152615_add_payment_method_reference_to_stripe_intents.rb +0 -6
  45. data/db/migrate/20230310171444_normalize_stripe_intent_id_attributes.rb +0 -6
  46. data/db/migrate/20230323154931_drop_solidus_stripe_setup_intent.rb +0 -13
  47. data/db/migrate/20230403094916_rename_webhook_endpoint_to_payment_method_slug_entries.rb +0 -5
@@ -6,7 +6,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
6
6
  describe "#capture_payment" do
7
7
  context "when a full capture is performed" do
8
8
  it "completes a pending payment" do
9
- payment_method = create(:stripe_payment_method)
9
+ payment_method = create(:solidus_stripe_payment_method)
10
10
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(
11
11
  id: "pi_123",
12
12
  amount: 1000,
@@ -30,7 +30,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
30
30
  end
31
31
 
32
32
  it "adds a log entry to the payment" do
33
- payment_method = create(:stripe_payment_method)
33
+ payment_method = create(:solidus_stripe_payment_method)
34
34
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(
35
35
  id: "pi_123",
36
36
  amount: 1000,
@@ -61,7 +61,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
61
61
  context "when a partial capture is performed" do
62
62
  it "completes a pending payment" do
63
63
  SolidusStripe::Seeds.refund_reasons
64
- payment_method = create(:stripe_payment_method)
64
+ payment_method = create(:solidus_stripe_payment_method)
65
65
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(
66
66
  id: "pi_123",
67
67
  amount: 1000,
@@ -91,7 +91,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
91
91
 
92
92
  it "synchronizes refunds" do
93
93
  SolidusStripe::Seeds.refund_reasons
94
- payment_method = create(:stripe_payment_method)
94
+ payment_method = create(:solidus_stripe_payment_method)
95
95
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(
96
96
  id: "pi_123",
97
97
  amount: 1000,
@@ -121,7 +121,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
121
121
 
122
122
  it "adds a log entry for the captured payment" do
123
123
  SolidusStripe::Seeds.refund_reasons
124
- payment_method = create(:stripe_payment_method)
124
+ payment_method = create(:solidus_stripe_payment_method)
125
125
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(
126
126
  id: "pi_123",
127
127
  amount: 1000,
@@ -154,7 +154,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
154
154
  end
155
155
 
156
156
  it "does nothing if the payment is already completed" do
157
- payment_method = create(:stripe_payment_method)
157
+ payment_method = create(:solidus_stripe_payment_method)
158
158
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123")
159
159
  payment = create(:payment,
160
160
  payment_method: payment_method,
@@ -175,7 +175,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
175
175
 
176
176
  describe "#fail_payment" do
177
177
  it "fails a pending payment" do
178
- payment_method = create(:stripe_payment_method)
178
+ payment_method = create(:solidus_stripe_payment_method)
179
179
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123")
180
180
  payment = create(:payment,
181
181
  payment_method: payment_method,
@@ -193,7 +193,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
193
193
  end
194
194
 
195
195
  it "adds a log entry to the payment" do
196
- payment_method = create(:stripe_payment_method)
196
+ payment_method = create(:solidus_stripe_payment_method)
197
197
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123")
198
198
  payment = create(:payment,
199
199
  payment_method: payment_method,
@@ -215,7 +215,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
215
215
  end
216
216
 
217
217
  it "does nothing if the payment is already failed" do
218
- payment_method = create(:stripe_payment_method)
218
+ payment_method = create(:solidus_stripe_payment_method)
219
219
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123")
220
220
  payment = create(:payment,
221
221
  payment_method: payment_method,
@@ -236,7 +236,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
236
236
 
237
237
  describe "#void_payment" do
238
238
  it "voids a pending payment" do
239
- payment_method = create(:stripe_payment_method)
239
+ payment_method = create(:solidus_stripe_payment_method)
240
240
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123", cancellation_reason: "duplicate")
241
241
  payment = create(:payment,
242
242
  payment_method: payment_method,
@@ -254,7 +254,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
254
254
  end
255
255
 
256
256
  it "adds a log entry to the payment" do
257
- payment_method = create(:stripe_payment_method)
257
+ payment_method = create(:solidus_stripe_payment_method)
258
258
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123", cancellation_reason: "duplicate")
259
259
  payment = create(:payment,
260
260
  payment_method: payment_method,
@@ -276,7 +276,7 @@ RSpec.describe SolidusStripe::Webhook::PaymentIntentSubscriber do
276
276
  end
277
277
 
278
278
  it "does nothing if the payment is already voided" do
279
- payment_method = create(:stripe_payment_method)
279
+ payment_method = create(:solidus_stripe_payment_method)
280
280
  stripe_payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123", cancellation_reason: "duplicate")
281
281
  payment = create(:payment,
282
282
  payment_method: payment_method,
@@ -3,7 +3,7 @@
3
3
  module SolidusStripe::BackendTestHelper
4
4
  def create_payment_method(setup_future_usage: 'off_session', auto_capture: false)
5
5
  @payment_method = create(
6
- :stripe_payment_method,
6
+ :solidus_stripe_payment_method,
7
7
  preferred_setup_future_usage: setup_future_usage,
8
8
  auto_capture: auto_capture
9
9
  )
@@ -77,12 +77,12 @@ module SolidusStripe::BackendTestHelper
77
77
 
78
78
  def create_authorized_payment(opts = {})
79
79
  stripe_payment_method = create_stripe_payment_method(opts[:card_number] || '4242424242424242')
80
- payment_intent = create_stripe_payment_intent(stripe_payment_method.id)
80
+ stripe_payment_intent = create_stripe_payment_intent(stripe_payment_method.id)
81
81
 
82
- create(:stripe_payment,
82
+ create(:solidus_stripe_payment,
83
83
  :authorized,
84
84
  order: order,
85
- response_code: payment_intent.id,
85
+ response_code: stripe_payment_intent.id,
86
86
  stripe_payment_method_id: stripe_payment_method.id,
87
87
  payment_method: payment_method)
88
88
  end
@@ -132,6 +132,18 @@ module SolidusStripe::BackendTestHelper
132
132
  end
133
133
  end
134
134
 
135
+ def capture_partial_payment_amount(payment, amount)
136
+ within_row(1) do
137
+ click_icon(:edit)
138
+ fill_in('amount', with: amount)
139
+ click_icon(:ok)
140
+ expect(page).to have_selector('td.amount span', text: amount.to_money.format)
141
+ expect(payment.reload.amount).to eq(amount)
142
+ end
143
+
144
+ capture_payment
145
+ end
146
+
135
147
  def void_payment
136
148
  click_icon(:void)
137
149
  end
@@ -149,43 +161,6 @@ module SolidusStripe::BackendTestHelper
149
161
 
150
162
  # Helper methods for checking expected outcomes and states
151
163
 
152
- def expects_page_to_display_successfully_captured_payment(payment)
153
- expect(page).to have_content('Payment Updated')
154
- expect(payment.reload.state).to eq('completed')
155
- expect(payment.capture_events.first.amount).to eq(payment.amount)
156
- end
157
-
158
- def expects_page_to_display_successfully_refunded_payment(payment)
159
- expect(page).to have_content('Refund has been successfully created!')
160
- expect(payment).to be_fully_refunded
161
- end
162
-
163
- def expects_page_to_display_successfully_partially_refunded_payment(payment, amount)
164
- expect(page).to have_content('Refund has been successfully created!')
165
- expect(payment.reload.state).to eq('completed')
166
- expect(payment.refunds.first.amount).to eq(amount)
167
- end
168
-
169
- def expects_page_to_display_successfully_voided_payment(payment)
170
- expect(page).to have_content('Payment Updated')
171
- expect(payment.reload.state).to eq('void')
172
- end
173
-
174
- def expects_page_to_display_successfully_canceled_order_payment(payment)
175
- expect(page).to have_content('Order canceled')
176
- expect(payment.reload.state).to eq('void')
177
- end
178
-
179
- def expects_page_to_display_capture_fail_message(payment, message)
180
- expect(page).to have_content(message)
181
- expect(payment.reload.state).to eq('failed')
182
- end
183
-
184
- def expects_page_to_display_payment(payment)
185
- click_on 'Payments'
186
- expect(page).to have_content(payment.number)
187
- end
188
-
189
164
  def expects_page_to_display_log_messages(log_messages = [])
190
165
  expect(page).to have_content('Log Entries')
191
166
  log_messages.each do |log_message|
@@ -205,6 +180,6 @@ module SolidusStripe::BackendTestHelper
205
180
 
206
181
  def expects_payment_to_have_correct_capture_amount_on_stripe(payment, amount)
207
182
  stripe_payment_intent = fetch_stripe_payment_intent(payment)
208
- expect(stripe_payment_intent.amount_received).to eq(amount * 100)
183
+ expect(stripe_payment_intent.amount_received).to eq(amount.to_money.fractional)
209
184
  end
210
185
  end
@@ -25,7 +25,7 @@ module SolidusStripe::CheckoutTestHelper
25
25
 
26
26
  def create_payment_method(setup_future_usage: 'off_session', auto_capture: false)
27
27
  @payment_method = create(
28
- :stripe_payment_method,
28
+ :solidus_stripe_payment_method,
29
29
  preferred_setup_future_usage: setup_future_usage,
30
30
  auto_capture: auto_capture
31
31
  )
@@ -188,6 +188,28 @@ module SolidusStripe::CheckoutTestHelper
188
188
  choose(option: payment_method.id)
189
189
  end
190
190
 
191
+ def choose_stripe_payment_method(payment_method_type: 'card')
192
+ using_wait_time(10) do
193
+ within_frame(find_stripe_iframe) do
194
+ # Stripe doesn't display payment methods in the same order.
195
+ # The payment method order is based on the most used in that
196
+ # context (and other parameters).
197
+ # For this reason, if the payment method tab is not visible,
198
+ # it will be selected from the dedicated additional Stripe
199
+ # payment methods "select" rendered in the Stripe payment form.
200
+ #
201
+ # https://stripe.com/docs/payments/customize-payment-element#payment-method-order
202
+ if has_css?("##{payment_method_type}-tab")
203
+ find("##{payment_method_type}-tab").click
204
+ else
205
+ find(
206
+ ".p-AdditionalPaymentMethods-menu option[value='#{payment_method_type}']"
207
+ ).select_option
208
+ end
209
+ end
210
+ end
211
+ end
212
+
191
213
  def submit_payment
192
214
  click_button("Save and Continue")
193
215
  end
@@ -216,6 +238,10 @@ module SolidusStripe::CheckoutTestHelper
216
238
  expect(last_stripe_payment.state).to eq('failed')
217
239
  end
218
240
 
241
+ def expects_payment_to_be_processing
242
+ expect(last_stripe_payment.state).to eq('processing')
243
+ end
244
+
219
245
  def expects_page_to_not_display_wallet_payment_sources
220
246
  expect(page).to have_no_selector("[name='order[wallet_payment_source_id]']")
221
247
  end
@@ -59,7 +59,7 @@ module SolidusStripe
59
59
 
60
60
  def solidus_stripe_object
61
61
  @solidus_stripe_object = SolidusStripe::Webhook::Event.new(stripe_event: stripe_object,
62
- spree_payment_method: @payment_method)
62
+ payment_method: @payment_method)
63
63
  end
64
64
 
65
65
  def json
@@ -4,41 +4,62 @@ require 'solidus_stripe_spec_helper'
4
4
 
5
5
  RSpec.describe 'SolidusStripe Orders Payments', :js do
6
6
  include SolidusStripe::BackendTestHelper
7
+ include Devise::Test::IntegrationHelpers
7
8
  stub_authorization!
8
9
 
10
+ let(:user) { create(:admin_user) }
11
+
9
12
  context 'with successful payment operations' do
10
13
  it 'navigates to the payments page' do
11
14
  payment = create_authorized_payment
12
15
  visit_payments_page
13
16
 
14
- expects_page_to_display_payment(payment)
17
+ click_on 'Payments'
18
+ expect(page).to have_content(payment.number)
15
19
  end
16
20
 
17
21
  it 'displays log entries for a payment' do
18
- payment = create(:stripe_payment, :captured, order: order, payment_method: payment_method)
22
+ payment = create(:solidus_stripe_payment, :captured, order: order, payment_method: payment_method)
19
23
 
20
24
  visit_payment_page(payment)
21
25
 
22
26
  expects_page_to_display_log_messages(["PaymentIntent was confirmed and captured successfully"])
23
27
  end
24
28
 
25
- it 'captures an authorized payment successfully' do
29
+ it 'successfully captures an authorized payment' do
26
30
  payment = create_authorized_payment
27
31
  visit_payments_page
28
32
 
29
33
  capture_payment
30
34
 
31
- expects_page_to_display_successfully_captured_payment(payment)
35
+ expect(page).to have_content('Payment Updated')
36
+ expect(payment.reload.state).to eq('completed')
37
+ expect(payment.capture_events.first.amount).to eq(payment.amount)
32
38
  expects_payment_to_have_correct_capture_amount_on_stripe(payment, payment.amount)
33
39
  end
34
40
 
41
+ it 'successfully captures a partial amount of an authorized payment' do
42
+ payment = create_authorized_payment
43
+ partial_capture_amount = payment.amount - 10
44
+
45
+ visit_payments_page
46
+
47
+ capture_partial_payment_amount(payment, partial_capture_amount)
48
+
49
+ expect(page).to have_content('Payment Updated')
50
+ expect(payment.reload.state).to eq('completed')
51
+ expect(payment.capture_events.first.amount).to eq(payment.amount)
52
+ expects_payment_to_have_correct_capture_amount_on_stripe(payment, partial_capture_amount)
53
+ end
54
+
35
55
  it 'voids a payment from an order' do
36
56
  payment = create_authorized_payment
37
57
  visit_payments_page
38
58
 
39
59
  void_payment
40
60
 
41
- expects_page_to_display_successfully_voided_payment(payment)
61
+ expect(page).to have_content('Payment Updated')
62
+ expect(payment.reload.state).to eq('void')
42
63
  expects_payment_to_be_voided_on_stripe(payment)
43
64
  end
44
65
 
@@ -48,7 +69,8 @@ RSpec.describe 'SolidusStripe Orders Payments', :js do
48
69
 
49
70
  refund_payment
50
71
 
51
- expects_page_to_display_successfully_refunded_payment(payment)
72
+ expect(page).to have_content('Refund has been successfully created!')
73
+ expect(payment).to be_fully_refunded
52
74
  expects_payment_to_be_refunded_on_stripe(payment, payment.amount)
53
75
  end
54
76
 
@@ -60,35 +82,35 @@ RSpec.describe 'SolidusStripe Orders Payments', :js do
60
82
  partial_refund_amount = 25
61
83
  partially_refund_payment(refund_reason, partial_refund_amount)
62
84
 
63
- expects_page_to_display_successfully_partially_refunded_payment(payment, partial_refund_amount)
85
+ expect(page).to have_content('Refund has been successfully created!')
86
+ expect(payment.reload.state).to eq('completed')
87
+ expect(payment.refunds.first.amount).to eq(partial_refund_amount)
64
88
  expects_payment_to_be_refunded_on_stripe(payment, partial_refund_amount)
65
89
  end
66
90
 
67
91
  it 'cancels an order with captured payment' do
68
92
  payment = create_captured_payment
93
+
94
+ sign_in user
69
95
  visit_payments_page
70
96
 
71
97
  cancel_order
72
98
 
73
- # https://github.com/solidusio/solidus/blob/ab59d6435239b50db79d73b9a974af057ad56b52/core/app/models/spree/payment_method.rb#L169-L181
74
- pending "needs to implement try_void method to handle voiding payments on order cancellation"
75
-
76
- expects_page_to_display_successfully_canceled_order_payment(payment)
77
- expects_payment_to_be_voided_on_stripe(payment)
99
+ expect(page).to have_content('Order canceled')
100
+ expect(payment.reload.state).to eq('completed')
101
+ expects_payment_to_be_refunded_on_stripe(payment, payment.amount)
78
102
  end
79
103
 
80
104
  it 'cancels an order with authorized payment' do
81
105
  payment = create_authorized_payment
106
+
107
+ sign_in user
82
108
  visit_payments_page
83
109
 
84
110
  cancel_order
85
111
 
86
- # https://github.com/solidusio/solidus/blob/ab59d6435239b50db79d73b9a974af057ad56b52/core/app/models/spree/payment_method.rb#L169-L181
87
- # Note that for this specific case, the test is pending also because there is an issue
88
- # with locating the user who canceled the order.
89
- pending "needs to implement try_void method to handle voiding payments on order cancellation"
90
-
91
- expects_page_to_display_successfully_canceled_order_payment(payment)
112
+ expect(page).to have_content('Order canceled')
113
+ expect(payment.reload.state).to eq('void')
92
114
  expects_payment_to_be_voided_on_stripe(payment)
93
115
  end
94
116
 
@@ -100,7 +122,9 @@ RSpec.describe 'SolidusStripe Orders Payments', :js do
100
122
  capture_payment
101
123
  payment = last_valid_payment
102
124
 
103
- expects_page_to_display_successfully_captured_payment(payment)
125
+ expect(page).to have_content('Payment Updated')
126
+ expect(payment.reload.state).to eq('completed')
127
+ expect(payment.capture_events.first.amount).to eq(payment.amount)
104
128
  expects_payment_to_have_correct_capture_amount_on_stripe(payment, payment.amount)
105
129
  end
106
130
  end
@@ -112,8 +136,10 @@ RSpec.describe 'SolidusStripe Orders Payments', :js do
112
136
 
113
137
  capture_payment
114
138
 
115
- expects_page_to_display_capture_fail_message(payment,
116
- 'This PaymentIntent could not be captured because it has a status of requires_action.')
139
+ expect(page).to have_content(
140
+ 'This PaymentIntent could not be captured because it has a status of requires_action.'
141
+ )
142
+ expect(payment.reload.state).to eq('failed')
117
143
  end
118
144
  end
119
145
  end
@@ -80,6 +80,25 @@ RSpec.describe 'SolidusStripe Checkout', :js do
80
80
  end
81
81
  end
82
82
 
83
+ context 'with non-card Stripe payment methods' do
84
+ before do
85
+ stub_spree_preferences(currency: 'EUR')
86
+ create_payment_method(setup_future_usage: 'off_session', auto_capture: true)
87
+ end
88
+
89
+ it 'creates a payment intent and successfully processes sepa_debit payment' do
90
+ visit_payment_step(user: create(:user))
91
+ choose_new_stripe_payment
92
+ choose_stripe_payment_method(payment_method_type: "sepa_debit")
93
+ fills_in_stripe_input 'iban', with: 'DE89370400440532013000'
94
+
95
+ submit_payment
96
+ complete_order
97
+
98
+ expects_payment_to_be_processing
99
+ end
100
+ end
101
+
83
102
  context 'with declined cards' do
84
103
  it 'reject transactions with cards declined at intent creation or invalid fields and return an appropriate response' do # rubocop:disable Layout/LineLength
85
104
  create_payment_method
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_stripe
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0.alpha.1
4
+ version: 5.0.0.rc.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-18 00:00:00.000000000 Z
11
+ date: 2023-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '4'
22
+ version: '5'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '4'
32
+ version: '5'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: solidus_support
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -200,14 +200,9 @@ files:
200
200
  - config/routes.rb
201
201
  - coverage.rb
202
202
  - db/migrate/20230109183332_create_solidus_stripe_payment_sources.rb
203
- - db/migrate/20230303154931_create_solidus_stripe_setup_intent.rb
204
203
  - db/migrate/20230306105520_create_solidus_stripe_payment_intents.rb
205
- - db/migrate/20230308122414_create_solidus_stripe_webhook_endpoints.rb
206
- - db/migrate/20230310152615_add_payment_method_reference_to_stripe_intents.rb
207
- - db/migrate/20230310171444_normalize_stripe_intent_id_attributes.rb
204
+ - db/migrate/20230308122414_create_solidus_stripe_slug_entries.rb
208
205
  - db/migrate/20230313150008_create_solidus_stripe_customers.rb
209
- - db/migrate/20230323154931_drop_solidus_stripe_setup_intent.rb
210
- - db/migrate/20230403094916_rename_webhook_endpoint_to_payment_method_slug_entries.rb
211
206
  - db/seeds.rb
212
207
  - lib/generators/solidus_stripe/install/install_generator.rb
213
208
  - lib/generators/solidus_stripe/install/templates/app/assets/stylesheets/spree/frontend/solidus_stripe.css
@@ -296,7 +291,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
291
  - !ruby/object:Gem::Version
297
292
  version: 1.3.1
298
293
  requirements: []
299
- rubygems_version: 3.4.10
294
+ rubygems_version: 3.3.7
300
295
  signing_key:
301
296
  specification_version: 4
302
297
  summary: Stripe Payment Method for Solidus
@@ -1,10 +0,0 @@
1
- class CreateSolidusStripeSetupIntent < ActiveRecord::Migration[7.0]
2
- def change
3
- create_table :solidus_stripe_setup_intents do |t|
4
- t.string :stripe_setup_intent_id
5
- t.references :order, null: false, foreign_key: { to_table: :spree_orders }
6
-
7
- t.timestamps
8
- end
9
- end
10
- end
@@ -1,10 +0,0 @@
1
- class CreateSolidusStripeWebhookEndpoints < ActiveRecord::Migration[5.2]
2
- def change
3
- create_table :solidus_stripe_webhook_endpoints do |t|
4
- t.references :payment_method, null: false, foreign_key: { to_table: :spree_payment_methods }
5
- t.string :slug, null: false, index: { unique: true }
6
-
7
- t.timestamps
8
- end
9
- end
10
- end
@@ -1,6 +0,0 @@
1
- class AddPaymentMethodReferenceToStripeIntents < ActiveRecord::Migration[7.0]
2
- def change
3
- add_reference :solidus_stripe_setup_intents, :payment_method, null: false, foreign_key: { to_table: :spree_payment_methods }
4
- add_reference :solidus_stripe_payment_intents, :payment_method, null: false, foreign_key: { to_table: :spree_payment_methods }
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- class NormalizeStripeIntentIdAttributes < ActiveRecord::Migration[7.0]
2
- def change
3
- rename_column :solidus_stripe_payment_intents, :stripe_payment_intent_id, :stripe_intent_id
4
- rename_column :solidus_stripe_setup_intents, :stripe_setup_intent_id, :stripe_intent_id
5
- end
6
- end
@@ -1,13 +0,0 @@
1
- class DropSolidusStripeSetupIntent < ActiveRecord::Migration[7.0]
2
- def change
3
- drop_table "solidus_stripe_setup_intents", force: :cascade do |t|
4
- t.string "stripe_intent_id"
5
- t.integer "order_id", null: false
6
- t.datetime "created_at", null: false
7
- t.datetime "updated_at", null: false
8
- t.integer "payment_method_id", null: false
9
- t.index ["order_id"], name: "index_solidus_stripe_setup_intents_on_order_id"
10
- t.index ["payment_method_id"], name: "index_solidus_stripe_setup_intents_on_payment_method_id"
11
- end
12
- end
13
- end
@@ -1,5 +0,0 @@
1
- class RenameWebhookEndpointToPaymentMethodSlugEntries < ActiveRecord::Migration[7.0]
2
- def change
3
- rename_table :solidus_stripe_webhook_endpoints, :solidus_stripe_slug_entries
4
- end
5
- end