spree_gateway 3.8.0 → 3.9.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -11
  3. data/Gemfile +3 -1
  4. data/README.md +2 -2
  5. data/Rakefile +2 -2
  6. data/app/models/spree/gateway/stripe_ach_gateway.rb +1 -1
  7. data/app/models/spree/gateway/stripe_elements_gateway.rb +54 -0
  8. data/app/models/spree/gateway/stripe_gateway.rb +5 -0
  9. data/app/models/{spree → spree_gateway}/apple_pay_order_decorator.rb +2 -2
  10. data/app/models/{spree → spree_gateway}/apple_pay_payment_decorator.rb +2 -2
  11. data/app/models/spree_gateway/credit_card_decorator.rb +10 -0
  12. data/app/models/spree_gateway/order_decorator.rb +28 -0
  13. data/app/models/{spree → spree_gateway}/payment_decorator.rb +9 -2
  14. data/app/views/spree/checkout/_payment_confirm.html.erb +39 -0
  15. data/config/locales/en.yml +4 -0
  16. data/config/routes.rb +12 -0
  17. data/db/migrate/20200422114908_add_intent_key_to_payment.rb +5 -0
  18. data/lib/controllers/spree/api/v2/storefront/intents_controller.rb +27 -0
  19. data/lib/spree_frontend/controllers/spree/checkout_controller_decorator.rb +19 -0
  20. data/lib/spree_gateway/engine.rb +10 -0
  21. data/lib/spree_gateway/version.rb +1 -1
  22. data/lib/views/frontend/spree/checkout/payment/_stripe_elements.html.erb +2 -1
  23. data/spec/features/admin/stripe_elements_payment_spec.rb +20 -29
  24. data/spec/features/stripe_checkout_spec.rb +37 -23
  25. data/spec/features/stripe_elements_3ds_checkout_spec.rb +225 -0
  26. data/spec/models/gateway/authorize_net_spec.rb +1 -1
  27. data/spec/models/gateway/balanced_gateway_spec.rb +1 -1
  28. data/spec/models/gateway/banwire_spec.rb +1 -1
  29. data/spec/models/gateway/beanstream_spec.rb +1 -1
  30. data/spec/models/gateway/braintree_gateway_spec.rb +24 -13
  31. data/spec/models/gateway/card_save_spec.rb +1 -1
  32. data/spec/models/gateway/{data_cache_spec.rb → data_cash_spec.rb} +1 -1
  33. data/spec/models/gateway/epay_spec.rb +1 -1
  34. data/spec/models/gateway/eway_rapid_spec.rb +1 -1
  35. data/spec/models/gateway/eway_spec.rb +1 -1
  36. data/spec/models/gateway/moneris_spec.rb +1 -1
  37. data/spec/models/gateway/pay_junction_spec.rb +1 -1
  38. data/spec/models/gateway/pay_pal_spec.rb +1 -1
  39. data/spec/models/gateway/payflow_pro_spec.rb +1 -1
  40. data/spec/models/gateway/paymill_spec.rb +1 -1
  41. data/spec/models/gateway/pin_gateway_spec.rb +1 -1
  42. data/spec/models/gateway/quickpay_spec.rb +1 -1
  43. data/spec/models/gateway/sage_pay_spec.rb +1 -1
  44. data/spec/models/gateway/secure_pay_au_spec.rb +1 -1
  45. data/spec/models/gateway/stripe_ach_gateway_spec.rb +2 -1
  46. data/spec/models/gateway/stripe_gateway_spec.rb +1 -0
  47. data/spec/models/gateway/usa_epay_transaction_spec.rb +2 -2
  48. data/spec/models/gateway/worldpay_spec.rb +1 -1
  49. data/spec/models/spree/order_spec.rb +4 -2
  50. data/spec/support/order_walktrough.rb +73 -0
  51. data/spec/support/within_stripe_3ds_popup.rb +10 -0
  52. data/spree_gateway.gemspec +9 -3
  53. metadata +34 -28
  54. data/Appraisals +0 -14
  55. data/gemfiles/spree_4_1.gemfile +0 -8
  56. data/gemfiles/spree_4_2.gemfile +0 -8
  57. data/gemfiles/spree_master.gemfile +0 -8
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::BalancedGateway do
4
- let(:gateway) { described_class.create!(name: 'Balanced') }
4
+ let(:gateway) { described_class.create!(name: 'Balanced', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Balanced gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::Banwire do
4
- let(:gateway) { described_class.create!(name: 'Banwire') }
4
+ let(:gateway) { described_class.create!(name: 'Banwire', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Banwire gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::Beanstream do
4
- let(:gateway) { described_class.create!(name: 'Beanstream') }
4
+ let(:gateway) { described_class.create!(name: 'Beanstream', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Beanstream gateway' do
@@ -2,13 +2,24 @@ require 'spec_helper'
2
2
  require 'pry'
3
3
 
4
4
  describe Spree::Gateway::BraintreeGateway do
5
- let!(:country) { create(:country, name: 'United States', iso_name: 'UNITED STATES', iso3: 'USA', iso: 'US', numcode: 840) }
6
- let!(:state) { create(:state, name: 'Maryland', abbr: 'MD', country: country) }
7
- let!(:address) { create(:address, firstname: 'John', lastname: 'Doe', address1: '1234 My Street', address2: 'Apt 1', city: 'Washington DC', zipcode: '20123', phone: '(555)555-5555', state: state, country: country) }
8
-
9
5
  before do
6
+ country = Spree::Country.find_by(name: 'United States of America')
7
+ country.update(name: 'United States', iso_name: 'UNITED STATES', iso3: 'USA', iso: 'US', numcode: 840)
8
+ state = create(:state, name: 'Maryland', abbr: 'MD', country: country)
9
+ @address = create(:address,
10
+ firstname: 'John',
11
+ lastname: 'Doe',
12
+ address1: '1234 My Street',
13
+ address2: 'Apt 1',
14
+ city: 'Washington DC',
15
+ zipcode: '20123',
16
+ phone: '(555)555-5555',
17
+ state: state,
18
+ country: country)
19
+
20
+
10
21
  Spree::Gateway.update_all(active: false)
11
- @gateway = Spree::Gateway::BraintreeGateway.create!(name: 'Braintree Gateway', active: true)
22
+ @gateway = Spree::Gateway::BraintreeGateway.create!(name: 'Braintree Gateway', active: true, stores: [::Spree::Store.default])
12
23
  @gateway.preferences = {
13
24
  environment: 'sandbox',
14
25
  merchant_id: 'zbn5yzq9t7wmwx42',
@@ -18,7 +29,7 @@ describe Spree::Gateway::BraintreeGateway do
18
29
  @gateway.save!
19
30
 
20
31
  with_payment_profiles_off do
21
- order = create(:order_with_totals, bill_address: address, ship_address: address)
32
+ order = create(:order_with_totals, bill_address: @address, ship_address: @address)
22
33
  order.update_with_updater!
23
34
 
24
35
  # Use a valid CC from braintree sandbox: https://www.braintreepayments.com/docs/ruby/reference/sandbox
@@ -37,7 +48,7 @@ describe Spree::Gateway::BraintreeGateway do
37
48
 
38
49
  describe 'payment profile creation' do
39
50
  before do
40
- order = create(:order_with_totals, bill_address: address, ship_address: address)
51
+ order = create(:order_with_totals, bill_address: @address, ship_address: @address)
41
52
  order.update_with_updater!
42
53
 
43
54
  @credit_card = create(:credit_card,
@@ -56,12 +67,12 @@ describe Spree::Gateway::BraintreeGateway do
56
67
  remote_customer = @gateway.provider.instance_variable_get(:@braintree_gateway).customer.find(@credit_card.gateway_customer_profile_id)
57
68
  remote_address = remote_customer.addresses.first rescue nil
58
69
  expect(remote_address).not_to be_nil
59
- expect(remote_address.street_address).to eq(address.address1)
60
- expect(remote_address.extended_address).to eq(address.address2)
61
- expect(remote_address.locality).to eq(address.city)
62
- expect(remote_address.region).to eq(address.state.name)
63
- expect(remote_address.country_code_alpha2).to eq(address.country.iso)
64
- expect(remote_address.postal_code).to eq(address.zipcode)
70
+ expect(remote_address.street_address).to eq(@address.address1)
71
+ expect(remote_address.extended_address).to eq(@address.address2)
72
+ expect(remote_address.locality).to eq(@address.city)
73
+ expect(remote_address.region).to eq(@address.state.name)
74
+ expect(remote_address.country_code_alpha2).to eq(@address.country.iso)
75
+ expect(remote_address.postal_code).to eq(@address.zipcode)
65
76
  end
66
77
  end
67
78
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::CardSave do
4
- let(:gateway) { described_class.create!(name: 'CardSave') }
4
+ let(:gateway) { described_class.create!(name: 'CardSave', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a CardSave gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::DataCash do
4
- let(:gateway) { described_class.create!(name: 'DataCash') }
4
+ let(:gateway) { described_class.create!(name: 'DataCash', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a DataCash gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::Epay do
4
- let(:gateway) { described_class.create!(name: 'Epay') }
4
+ let(:gateway) { described_class.create!(name: 'Epay', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Epay gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::EwayRapid do
4
- let(:gateway) { described_class.create!(name: 'eWAY Rapid') }
4
+ let(:gateway) { described_class.create!(name: 'eWAY Rapid', stores: [::Spree::Store.default]) }
5
5
 
6
6
  describe '#provider_class' do
7
7
  it 'should be an eWAY Rapid gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::Eway do
4
- let(:gateway) { described_class.create!(name: 'Eway') }
4
+ let(:gateway) { described_class.create!(name: 'Eway', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Eway gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::Moneris do
4
- let(:gateway) { described_class.create!(name: 'Moneris') }
4
+ let(:gateway) { described_class.create!(name: 'Moneris', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Moneris gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::PayJunction do
4
- let(:gateway) { described_class.create!(name: 'PayJunction') }
4
+ let(:gateway) { described_class.create!(name: 'PayJunction', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a PayJunction gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::PayPalGateway do
4
- let(:gateway) { described_class.create!(name: 'PayPal') }
4
+ let(:gateway) { described_class.create!(name: 'PayPal', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a PayPal gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::PayflowPro do
4
- let(:gateway) { described_class.create!(name: 'PayflowPro') }
4
+ let(:gateway) { described_class.create!(name: 'PayflowPro', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Payflow gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::Paymill do
4
- let(:gateway) { described_class.create!(name: 'Paymill') }
4
+ let(:gateway) { described_class.create!(name: 'Paymill', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Paymill gateway' do
@@ -4,7 +4,7 @@ describe Spree::Gateway::PinGateway do
4
4
 
5
5
  before do
6
6
  Spree::Gateway.update_all(active: false)
7
- @gateway = described_class.create!(name: 'Pin Gateway', active: true)
7
+ @gateway = described_class.create!(name: 'Pin Gateway', active: true, stores: [::Spree::Store.default])
8
8
  @gateway.set_preference(:api_key, 'W_VzkRCZSILiKWUS-dndUg')
9
9
  @gateway.save!
10
10
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::Quickpay do
4
- let(:gateway) { described_class.create!(name: 'QuickpayGateway') }
4
+ let(:gateway) { described_class.create!(name: 'QuickpayGateway', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Quickpay gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::SagePay do
4
- let(:gateway) { described_class.create!(name: 'SagePay') }
4
+ let(:gateway) { described_class.create!(name: 'SagePay', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a SagePay gateway' do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::SecurePayAU do
4
- let(:gateway) { described_class.create!(name: 'SecurePayAU') }
4
+ let(:gateway) { described_class.create!(name: 'SecurePayAU', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a SecurePayAU gateway' do
@@ -175,7 +175,8 @@ describe Spree::Gateway::StripeAchGateway do
175
175
  success?: true,
176
176
  authorization: '123',
177
177
  avs_result: { 'code' => 'avs-code' },
178
- cvv_result: { 'code' => 'cvv-code', 'message' => 'CVV Result' })
178
+ cvv_result: { 'code' => 'cvv-code', 'message' => 'CVV Result' },
179
+ params: {})
179
180
  end
180
181
 
181
182
  it 'gets correct amount' do
@@ -182,6 +182,7 @@ describe Spree::Gateway::StripeGateway do
182
182
 
183
183
  let!(:success_response) do
184
184
  double('success_response', :success? => true,
185
+ :params => {},
185
186
  :authorization => '123',
186
187
  :avs_result => { 'code' => 'avs-code' },
187
188
  :cvv_result => { 'code' => 'cvv-code', 'message' => "CVV Result"})
@@ -3,11 +3,11 @@ require 'spec_helper'
3
3
  describe Spree::Gateway::UsaEpayTransaction do
4
4
  before do
5
5
  Spree::Gateway.update_all(active: false)
6
- @gateway = Spree::Gateway::UsaEpayTransaction.create!(name: 'USA EPay Gateway', active: true)
6
+ @gateway = Spree::Gateway::UsaEpayTransaction.create!(name: 'USA EPay Gateway', active: true, stores: [::Spree::Store.default])
7
7
  @gateway.set_preference(:login, '0r19zQBdp5nS8i3t4hFxz0di13yf56q1')
8
8
  @gateway.save!
9
9
 
10
- country = create(:country, name: 'United States', iso_name: 'UNITED STATES', iso3: 'USA', iso: 'US', numcode: 840)
10
+ country = Spree::Country.find_by(name: 'United States of America')
11
11
  state = create(:state, name: 'Maryland', abbr: 'MD', country: country)
12
12
  address = create(:address,
13
13
  firstname: 'John',
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::Worldpay do
4
- let(:gateway) { described_class.create!(name: 'Worldpay') }
4
+ let(:gateway) { described_class.create!(name: 'Worldpay', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a Worldpay gateway' do
@@ -6,14 +6,16 @@ describe Spree::Order do
6
6
  let(:stripe_apple_pay_payment_method) do
7
7
  Spree::Gateway::StripeApplePayGateway.create!(
8
8
  name: 'ApplePay',
9
- preferred_domain_verification_certificate: FFaker::Lorem.characters(20)
9
+ preferred_domain_verification_certificate: FFaker::Lorem.characters(20),
10
+ stores: [::Spree::Store.default]
10
11
  )
11
12
  end
12
13
  let(:stripe_credit_card_payment_method) do
13
14
  Spree::Gateway::StripeGateway.create!(
14
15
  name: 'CreditCard',
15
16
  preferred_secret_key: FFaker::Lorem.characters(20),
16
- preferred_publishable_key: FFaker::Lorem.characters(20)
17
+ preferred_publishable_key: FFaker::Lorem.characters(20),
18
+ stores: [::Spree::Store.default]
17
19
  )
18
20
  end
19
21
 
@@ -0,0 +1,73 @@
1
+ class OrderWalkthrough
2
+ def self.up_to(state)
3
+ # A default store must exist to provide store settings
4
+ store = Spree::Store.default || FactoryBot.create(:store, default: true)
5
+
6
+ # A payment method must exist for an order to proceed through the Address state
7
+ unless Spree::PaymentMethod.exists?
8
+ FactoryBot.create(:check_payment_method)
9
+ end
10
+
11
+ # Need to create a valid zone too...
12
+ zone = FactoryBot.create(:zone)
13
+ country = FactoryBot.create(:country)
14
+ zone.members << Spree::ZoneMember.create(zoneable: country)
15
+ country.states << FactoryBot.create(:state, country: country)
16
+
17
+ # A shipping method must exist for rates to be displayed on checkout page
18
+ unless Spree::ShippingMethod.exists?
19
+ FactoryBot.create(:shipping_method).tap do |sm|
20
+ sm.calculator.preferred_amount = 10
21
+ sm.calculator.preferred_currency = store.default_currency
22
+ sm.calculator.save
23
+ end
24
+ end
25
+
26
+ order = Spree::Order.create!(email: 'spree@example.com')
27
+ add_line_item!(order)
28
+ order.next!
29
+
30
+ end_state_position = states.index(state.to_sym)
31
+ states[0...end_state_position].each do |state|
32
+ send(state, order)
33
+ end
34
+
35
+ order
36
+ end
37
+
38
+ private
39
+
40
+ def self.add_line_item!(order)
41
+ FactoryBot.create(:line_item, order: order)
42
+ order.reload
43
+ end
44
+
45
+ def self.address(order)
46
+ order.bill_address = FactoryBot.create(:address, country_id: Spree::Zone.global.members.first.zoneable.id)
47
+ order.ship_address = FactoryBot.create(:address, country_id: Spree::Zone.global.members.first.zoneable.id)
48
+ order.next!
49
+ end
50
+
51
+ def self.delivery(order)
52
+ order.next!
53
+ end
54
+
55
+ def self.payment(order)
56
+ FactoryBot.create :payment,
57
+ order: order,
58
+ payment_method: Spree::PaymentMethod.first,
59
+ amount: order.total
60
+
61
+ # TODO: maybe look at some way of making this payment_state change automatic
62
+ order.payment_state = 'paid'
63
+ order.next!
64
+ end
65
+
66
+ def self.complete(_order)
67
+ # noop?
68
+ end
69
+
70
+ def self.states
71
+ [:address, :delivery, :payment, :complete]
72
+ end
73
+ end
@@ -0,0 +1,10 @@
1
+ def within_stripe_3ds_popup
2
+ using_wait_time(10) do
3
+ within_frame 0 do
4
+ within_frame 0 do
5
+ expect(page).to have_text('3D Secure 2 Test Page', normalize_ws: true)
6
+ yield
7
+ end
8
+ end
9
+ end
10
+ end
@@ -16,16 +16,22 @@ Gem::Specification.new do |s|
16
16
  s.homepage = 'https://spreecommerce.org'
17
17
  s.license = 'BSD-3-Clause'
18
18
 
19
+ s.metadata = {
20
+ "bug_tracker_uri" => "https://github.com/spree/spree_gateway/issues",
21
+ "changelog_uri" => "https://github.com/spree/spree_gateway/releases/tag/v#{s.version}",
22
+ "documentation_uri" => "https://guides.spreecommerce.org/",
23
+ "source_code_uri" => "https://github.com/spree/spree_gateway/tree/v#{s.version}",
24
+ }
25
+
19
26
  s.files = `git ls-files`.split("\n")
20
27
  s.test_files = `git ls-files -- spec/*`.split("\n")
21
28
  s.require_path = 'lib'
22
29
  s.requirements << 'none'
23
30
 
24
- spree_version = '>= 3.1.0', '< 5.0'
25
- s.add_dependency 'spree_core', spree_version
31
+ s.add_dependency 'spree_core', '>= 3.7.0'
26
32
  s.add_dependency 'spree_extension'
27
33
 
28
- s.add_development_dependency 'braintree'
34
+ s.add_development_dependency 'braintree', '~> 3.0.0'
29
35
  s.add_development_dependency 'rspec-activemodel-mocks'
30
36
  s.add_development_dependency 'spree_dev_tools'
31
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.0
4
+ version: 3.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spree Commerce
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-07 00:00:00.000000000 Z
11
+ date: 2021-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -16,20 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.1.0
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '5.0'
19
+ version: 3.7.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: 3.1.0
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '5.0'
26
+ version: 3.7.0
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: spree_extension
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -48,16 +42,16 @@ dependencies:
48
42
  name: braintree
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
- - - ">="
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '0'
47
+ version: 3.0.0
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
51
  requirements:
58
- - - ">="
52
+ - - "~>"
59
53
  - !ruby/object:Gem::Version
60
- version: '0'
54
+ version: 3.0.0
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: rspec-activemodel-mocks
63
57
  requirement: !ruby/object:Gem::Requirement
@@ -95,14 +89,11 @@ files:
95
89
  - ".gitignore"
96
90
  - ".rspec"
97
91
  - ".travis.yml"
98
- - Appraisals
99
92
  - Gemfile
100
93
  - Guardfile
101
94
  - LICENSE.md
102
95
  - README.md
103
96
  - Rakefile
104
- - app/models/spree/apple_pay_order_decorator.rb
105
- - app/models/spree/apple_pay_payment_decorator.rb
106
97
  - app/models/spree/billing_integration.rb
107
98
  - app/models/spree/check.rb
108
99
  - app/models/spree/gateway/authorize_net.rb
@@ -135,7 +126,12 @@ files:
135
126
  - app/models/spree/gateway/stripe_gateway.rb
136
127
  - app/models/spree/gateway/usa_epay_transaction.rb
137
128
  - app/models/spree/gateway/worldpay.rb
138
- - app/models/spree/payment_decorator.rb
129
+ - app/models/spree_gateway/apple_pay_order_decorator.rb
130
+ - app/models/spree_gateway/apple_pay_payment_decorator.rb
131
+ - app/models/spree_gateway/credit_card_decorator.rb
132
+ - app/models/spree_gateway/order_decorator.rb
133
+ - app/models/spree_gateway/payment_decorator.rb
134
+ - app/views/spree/checkout/_payment_confirm.html.erb
139
135
  - config/initializers/inflections.rb
140
136
  - config/initializers/spree_permitted_attributes.rb
141
137
  - config/locales/bg.yml
@@ -149,12 +145,12 @@ files:
149
145
  - db/migrate/20131008221012_update_paypal_payment_method_type.rb
150
146
  - db/migrate/20131112133401_migrate_stripe_preferences.rb
151
147
  - db/migrate/20200317135551_add_spree_check_payment_source.rb
152
- - gemfiles/spree_4_1.gemfile
153
- - gemfiles/spree_4_2.gemfile
154
- - gemfiles/spree_master.gemfile
148
+ - db/migrate/20200422114908_add_intent_key_to_payment.rb
155
149
  - lib/active_merchant/billing/stripe_gateway_decorator.rb
150
+ - lib/controllers/spree/api/v2/storefront/intents_controller.rb
156
151
  - lib/controllers/spree/apple_pay_domain_verification_controller.rb
157
152
  - lib/generators/spree_gateway/install/install_generator.rb
153
+ - lib/spree_frontend/controllers/spree/checkout_controller_decorator.rb
158
154
  - lib/spree_gateway.rb
159
155
  - lib/spree_gateway/engine.rb
160
156
  - lib/spree_gateway/version.rb
@@ -179,6 +175,7 @@ files:
179
175
  - spec/factories/check_factory.rb
180
176
  - spec/features/admin/stripe_elements_payment_spec.rb
181
177
  - spec/features/stripe_checkout_spec.rb
178
+ - spec/features/stripe_elements_3ds_checkout_spec.rb
182
179
  - spec/models/gateway/authorize_net_cim_spec.rb
183
180
  - spec/models/gateway/authorize_net_spec.rb
184
181
  - spec/models/gateway/balanced_gateway_spec.rb
@@ -187,7 +184,7 @@ files:
187
184
  - spec/models/gateway/braintree_gateway_spec.rb
188
185
  - spec/models/gateway/card_save_spec.rb
189
186
  - spec/models/gateway/cyber_source_spec.rb
190
- - spec/models/gateway/data_cache_spec.rb
187
+ - spec/models/gateway/data_cash_spec.rb
191
188
  - spec/models/gateway/epay_spec.rb
192
189
  - spec/models/gateway/eway_rapid_spec.rb
193
190
  - spec/models/gateway/eway_spec.rb
@@ -208,13 +205,19 @@ files:
208
205
  - spec/models/spree/order_spec.rb
209
206
  - spec/requests/apple_pay_domain_verification.rb
210
207
  - spec/spec_helper.rb
208
+ - spec/support/order_walktrough.rb
211
209
  - spec/support/wait_for_stripe.rb
210
+ - spec/support/within_stripe_3ds_popup.rb
212
211
  - spree_gateway.gemspec
213
212
  homepage: https://spreecommerce.org
214
213
  licenses:
215
214
  - BSD-3-Clause
216
- metadata: {}
217
- post_install_message:
215
+ metadata:
216
+ bug_tracker_uri: https://github.com/spree/spree_gateway/issues
217
+ changelog_uri: https://github.com/spree/spree_gateway/releases/tag/v3.9.4
218
+ documentation_uri: https://guides.spreecommerce.org/
219
+ source_code_uri: https://github.com/spree/spree_gateway/tree/v3.9.4
220
+ post_install_message:
218
221
  rdoc_options: []
219
222
  require_paths:
220
223
  - lib
@@ -230,14 +233,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
233
  version: '0'
231
234
  requirements:
232
235
  - none
233
- rubygems_version: 3.1.2
234
- signing_key:
236
+ rubygems_version: 3.2.3
237
+ signing_key:
235
238
  specification_version: 4
236
239
  summary: Additional Payment Gateways for Spree Commerce
237
240
  test_files:
238
241
  - spec/factories/check_factory.rb
239
242
  - spec/features/admin/stripe_elements_payment_spec.rb
240
243
  - spec/features/stripe_checkout_spec.rb
244
+ - spec/features/stripe_elements_3ds_checkout_spec.rb
241
245
  - spec/models/gateway/authorize_net_cim_spec.rb
242
246
  - spec/models/gateway/authorize_net_spec.rb
243
247
  - spec/models/gateway/balanced_gateway_spec.rb
@@ -246,7 +250,7 @@ test_files:
246
250
  - spec/models/gateway/braintree_gateway_spec.rb
247
251
  - spec/models/gateway/card_save_spec.rb
248
252
  - spec/models/gateway/cyber_source_spec.rb
249
- - spec/models/gateway/data_cache_spec.rb
253
+ - spec/models/gateway/data_cash_spec.rb
250
254
  - spec/models/gateway/epay_spec.rb
251
255
  - spec/models/gateway/eway_rapid_spec.rb
252
256
  - spec/models/gateway/eway_spec.rb
@@ -267,4 +271,6 @@ test_files:
267
271
  - spec/models/spree/order_spec.rb
268
272
  - spec/requests/apple_pay_domain_verification.rb
269
273
  - spec/spec_helper.rb
274
+ - spec/support/order_walktrough.rb
270
275
  - spec/support/wait_for_stripe.rb
276
+ - spec/support/within_stripe_3ds_popup.rb