spree_gateway 3.9.3 → 3.10.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -15
  3. data/Gemfile +9 -1
  4. data/README.md +2 -2
  5. data/Rakefile +2 -2
  6. data/app/models/spree/gateway/stripe_elements_gateway.rb +4 -0
  7. data/app/models/spree/gateway/stripe_gateway.rb +4 -0
  8. data/app/models/{spree → spree_gateway}/apple_pay_order_decorator.rb +2 -2
  9. data/app/models/{spree → spree_gateway}/apple_pay_payment_decorator.rb +2 -2
  10. data/app/models/{spree → spree_gateway}/credit_card_decorator.rb +2 -2
  11. data/app/models/{spree → spree_gateway}/order_decorator.rb +2 -2
  12. data/app/models/{spree → spree_gateway}/payment_decorator.rb +2 -2
  13. data/config/locales/en.yml +1 -0
  14. data/config/routes.rb +1 -0
  15. data/db/migrate/20200317135551_add_spree_check_payment_source.rb +12 -12
  16. data/db/migrate/20200422114908_add_intent_key_to_payment.rb +1 -1
  17. data/lib/controllers/spree/api/v2/storefront/intents_controller.rb +18 -0
  18. data/lib/spree_gateway/engine.rb +4 -1
  19. data/lib/spree_gateway/version.rb +1 -1
  20. data/spec/features/admin/stripe_elements_payment_spec.rb +2 -1
  21. data/spec/features/stripe_checkout_spec.rb +9 -3
  22. data/spec/features/stripe_elements_3ds_checkout_spec.rb +2 -1
  23. data/spec/models/gateway/authorize_net_spec.rb +1 -1
  24. data/spec/models/gateway/balanced_gateway_spec.rb +1 -1
  25. data/spec/models/gateway/banwire_spec.rb +1 -1
  26. data/spec/models/gateway/beanstream_spec.rb +1 -1
  27. data/spec/models/gateway/braintree_gateway_spec.rb +24 -13
  28. data/spec/models/gateway/card_save_spec.rb +1 -1
  29. data/spec/models/gateway/{data_cache_spec.rb → data_cash_spec.rb} +1 -1
  30. data/spec/models/gateway/epay_spec.rb +1 -1
  31. data/spec/models/gateway/eway_rapid_spec.rb +1 -1
  32. data/spec/models/gateway/eway_spec.rb +1 -1
  33. data/spec/models/gateway/moneris_spec.rb +1 -1
  34. data/spec/models/gateway/pay_junction_spec.rb +1 -1
  35. data/spec/models/gateway/pay_pal_spec.rb +1 -1
  36. data/spec/models/gateway/payflow_pro_spec.rb +1 -1
  37. data/spec/models/gateway/paymill_spec.rb +1 -1
  38. data/spec/models/gateway/pin_gateway_spec.rb +1 -1
  39. data/spec/models/gateway/quickpay_spec.rb +1 -1
  40. data/spec/models/gateway/sage_pay_spec.rb +1 -1
  41. data/spec/models/gateway/secure_pay_au_spec.rb +1 -1
  42. data/spec/models/gateway/usa_epay_transaction_spec.rb +2 -2
  43. data/spec/models/gateway/worldpay_spec.rb +1 -1
  44. data/spec/models/spree/order_spec.rb +4 -2
  45. data/spec/requests/spree/api/v2/storefront/intents_controller_spec.rb +198 -0
  46. data/spree_gateway.gemspec +2 -3
  47. metadata +16 -29
  48. data/Appraisals +0 -15
  49. data/db/migrate/20121017004102_update_braintree_payment_method_type.rb +0 -9
  50. data/db/migrate/20130213222555_update_stripe_payment_method_type.rb +0 -9
  51. data/db/migrate/20130415222802_update_balanced_payment_method_type.rb +0 -9
  52. data/db/migrate/20131008221012_update_paypal_payment_method_type.rb +0 -9
  53. data/db/migrate/20131112133401_migrate_stripe_preferences.rb +0 -8
  54. data/gemfiles/spree_3_7.gemfile +0 -9
  55. data/gemfiles/spree_4_1.gemfile +0 -8
  56. data/gemfiles/spree_master.gemfile +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 82e672befb08ae277659eec1f7686002af0b6f66b1f8ecb467649ab29667aee2
4
- data.tar.gz: 47d5a54c20d7987569af842d50f471e6f3eea69647f6807865191c55e97f61cc
3
+ metadata.gz: 056db537dbbb9403df9df6e2822fa462b9c0b2eac0f880548d7ad9deb93e91c5
4
+ data.tar.gz: aeb658e8f6abfe36b8b84d45bb819a2cc02510f27010cf6ef059c3ae7fc78e30
5
5
  SHA512:
6
- metadata.gz: 5efb8b8ce887c92a222bf0b4c4b53b0ea16ee45f6efff3ad2908acdc5e3383139b778362be57ed858d15a0497df4d6aa37fa2c8f56ddee81f334945bcb67fe9f
7
- data.tar.gz: fb61b3afbfc998e819bd11cf5d1f53c782e0e486c5b0fea6c43710fba74664398384badff68298a593b715185da3eaa68727e18b3d575dc5f14511d232d7f437
6
+ metadata.gz: 9896b8790e3ad9bfd23cd5387fe8718d0e1dcb52edd4dcfce1026fdbe875192bd1287b45613be7a1ec395eeb8279e06817f92d9f45a7ab510dd37b910f27394a
7
+ data.tar.gz: 3659666f037e516a8ac535d11e5f95d4dcb64f7794e110ddb51b2a8087f699948c0e37c12c0d91bd48ca38633f1ced10dfb31528bbf873bfc09606f4fc994593
data/.travis.yml CHANGED
@@ -1,6 +1,8 @@
1
1
  os: linux
2
2
  dist: bionic
3
3
 
4
+ cache: bundler
5
+
4
6
  addons:
5
7
  apt:
6
8
  sources:
@@ -11,6 +13,7 @@ addons:
11
13
  services:
12
14
  - mysql
13
15
  - postgresql
16
+ - redis-server
14
17
 
15
18
  language: ruby
16
19
 
@@ -22,20 +25,6 @@ env:
22
25
  - DB=mysql
23
26
  - DB=postgres
24
27
 
25
- gemfile:
26
- - gemfiles/spree_3_7.gemfile
27
- - gemfiles/spree_4_1.gemfile
28
- - gemfiles/spree_master.gemfile
29
-
30
- jobs:
31
- allow_failures:
32
- - gemfile: gemfiles/spree_master.gemfile
33
- exclude:
34
- - rvm: 3.0
35
- gemfile: gemfiles/spree_4_1.gemfile
36
- - rvm: 3.0
37
- gemfile: gemfiles/spree_3_7.gemfile
38
-
39
28
  before_install:
40
29
  - mysql -u root -e "GRANT ALL ON *.* TO 'travis'@'%';"
41
30
 
@@ -47,4 +36,4 @@ before_script:
47
36
 
48
37
  script:
49
38
  - bundle exec rake test_app
50
- - bundle exec rake spec
39
+ - bundle exec rake spec
data/Gemfile CHANGED
@@ -1,6 +1,14 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'rails-controller-testing'
4
- gem 'spree', github: 'spree/spree', branch: 'master'
4
+ gem 'spree', github: 'spree/spree', branch: 'main'
5
+ gem 'spree_backend', github: 'spree/spree_backend', branch: 'main'
6
+ gem 'spree_frontend', github: 'spree/spree_legacy_frontend', branch: 'main'
7
+
8
+ if ENV['DB'] == 'mysql'
9
+ gem 'mysql2'
10
+ else
11
+ gem 'pg', '~> 1.1'
12
+ end
5
13
 
6
14
  gemspec
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Spree Gateway
2
2
 
3
- [![Build Status](https://api.travis-ci.org/spree/spree_gateway.svg?branch=master)](https://travis-ci.org/spree/spree_gateway)
3
+ [![Build Status](https://api.travis-ci.org/spree/spree_gateway.svg?branch=main)](https://travis-ci.org/spree/spree_gateway)
4
4
  [![Code Climate](https://codeclimate.com/github/spree/spree_gateway.svg)](https://codeclimate.com/github/spree/spree_gateway)
5
5
 
6
6
  Community supported Spree Payment Method Gateways. It works as a wrapper for
@@ -100,6 +100,6 @@ We are [available for hire][spark].
100
100
 
101
101
  [1]: http://www.fsf.org/licensing/essays/free-sw.html
102
102
  [2]: https://github.com/spree/spree_gateway/issues
103
- [3]: https://github.com/spree/spree_gateway/blob/master/LICENSE.md
103
+ [3]: https://github.com/spree/spree_gateway/blob/main/LICENSE.md
104
104
  [4]: https://github.com/spree
105
105
  [5]: https://github.com/spree/spree_gateway/graphs/contributors
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'bundler'
2
2
  Bundler::GemHelper.install_tasks
3
3
 
4
4
  require 'rspec/core/rake_task'
5
- require 'spree/testing_support/common_rake'
5
+ require 'spree/testing_support/extension_rake'
6
6
 
7
7
  RSpec::Core::RakeTask.new
8
8
 
@@ -11,5 +11,5 @@ task :default => [:spec]
11
11
  desc "Generates a dummy app for testing"
12
12
  task :test_app do
13
13
  ENV['LIB_NAME'] = 'spree_gateway'
14
- Rake::Task['common:test_app'].invoke
14
+ Rake::Task['extension:test_app'].invoke
15
15
  end
@@ -53,5 +53,9 @@ module Spree
53
53
  options[:execute_threed] = get_preference(:intents)
54
54
  return money, creditcard, options
55
55
  end
56
+
57
+ def public_preference_keys
58
+ %i[publishable_key test_mode intents]
59
+ end
56
60
  end
57
61
  end
@@ -143,5 +143,9 @@ module Spree
143
143
  url = 'https://spreecommerce.org'
144
144
  "#{name_with_version} #{url}"
145
145
  end
146
+
147
+ def public_preference_keys
148
+ %i[publishable_key test_mode]
149
+ end
146
150
  end
147
151
  end
@@ -1,4 +1,4 @@
1
- module Spree
1
+ module SpreeGateway
2
2
  module ApplePayOrderDecorator
3
3
  def confirmation_required?
4
4
  return false if paid_with_apple_pay?
@@ -17,4 +17,4 @@ module Spree
17
17
  end
18
18
  end
19
19
 
20
- Spree::Order.prepend Spree::ApplePayOrderDecorator
20
+ ::Spree::Order.prepend(::SpreeGateway::ApplePayOrderDecorator)
@@ -1,4 +1,4 @@
1
- module Spree
1
+ module SpreeGateway
2
2
  module ApplePayPaymentDecorator
3
3
  def apple_pay?
4
4
  payment_method.is_a? Spree::Gateway::StripeApplePayGateway
@@ -6,4 +6,4 @@ module Spree
6
6
  end
7
7
  end
8
8
 
9
- Spree::Payment.prepend Spree::ApplePayPaymentDecorator
9
+ ::Spree::Payment.prepend(::SpreeGateway::ApplePayPaymentDecorator)
@@ -1,4 +1,4 @@
1
- module Spree
1
+ module SpreeGateway
2
2
  module CreditCardDecorator
3
3
  def set_last_digits
4
4
  self.last_digits ||= number.to_s.length <= 4 ? number : number.to_s.slice(-4..-1)
@@ -7,4 +7,4 @@ module Spree
7
7
  end
8
8
  end
9
9
 
10
- ::Spree::CreditCard.prepend(::Spree::CreditCardDecorator)
10
+ ::Spree::CreditCard.prepend(::SpreeGateway::CreditCardDecorator)
@@ -1,4 +1,4 @@
1
- module Spree
1
+ module SpreeGateway
2
2
  module OrderDecorator
3
3
  def self.prepended(base)
4
4
  return if base.checkout_steps.key?(:payment_confirm)
@@ -25,4 +25,4 @@ module Spree
25
25
  end
26
26
  end
27
27
 
28
- Spree::Order.prepend(Spree::OrderDecorator)
28
+ ::Spree::Order.prepend(::SpreeGateway::OrderDecorator)
@@ -1,4 +1,4 @@
1
- module Spree
1
+ module SpreeGateway
2
2
  module PaymentDecorator
3
3
  def handle_response(response, success_state, failure_state)
4
4
  if response.success? && response.respond_to?(:params)
@@ -33,4 +33,4 @@ module Spree
33
33
  end
34
34
  end
35
35
 
36
- Spree::Payment.prepend(Spree::PaymentDecorator)
36
+ ::Spree::Payment.prepend(::SpreeGateway::PaymentDecorator)
@@ -12,6 +12,7 @@ en:
12
12
  payment_has_been_cancelled: The payment has been cancelled.
13
13
  please_wait_for_confirmation_popup: Please wait for payment confirmation popup to appear.
14
14
  payment_successfully_authorized: The payment was successfully authorized.
15
+ no_payment_authorization_needed: Payment autorization not needed.
15
16
  order_state:
16
17
  payment_confirm: Verify payment
17
18
  log_entry:
data/config/routes.rb CHANGED
@@ -10,6 +10,7 @@ Spree::Core::Engine.add_routes do
10
10
  namespace :v2 do
11
11
  namespace :storefront do
12
12
  namespace :intents do
13
+ post :payment_confirmation_data
13
14
  post :handle_response
14
15
  end
15
16
  end
@@ -3,19 +3,19 @@ class AddSpreeCheckPaymentSource < ActiveRecord::Migration[5.1]
3
3
  create_table :spree_checks do |t|
4
4
  t.references :payment_method
5
5
  t.references :user
6
- t.string "account_holder_name"
7
- t.string "account_holder_type"
8
- t.string "routing_number"
9
- t.string "account_number"
10
- t.string "account_type", default: 'checking'
11
- t.string "status"
12
- t.string "last_digits"
13
- t.string "gateway_customer_profile_id"
14
- t.string "gateway_payment_profile_id"
6
+ t.string 'account_holder_name'
7
+ t.string 'account_holder_type'
8
+ t.string 'routing_number'
9
+ t.string 'account_number'
10
+ t.string 'account_type', default: 'checking'
11
+ t.string 'status'
12
+ t.string 'last_digits'
13
+ t.string 'gateway_customer_profile_id'
14
+ t.string 'gateway_payment_profile_id'
15
15
 
16
- t.datetime "created_at", null: false
17
- t.datetime "updated_at", null: false
18
- t.datetime "deleted_at"
16
+ t.datetime 'created_at', null: false
17
+ t.datetime 'updated_at', null: false
18
+ t.datetime 'deleted_at'
19
19
  end
20
20
  add_index :spree_payment_methods, :id
21
21
  end
@@ -1,4 +1,4 @@
1
- class AddIntentKeyToPayment < ActiveRecord::Migration[4.2]
1
+ class AddIntentKeyToPayment < ActiveRecord::Migration[5.2]
2
2
  def change
3
3
  add_column :spree_payments, :intent_client_key, :string
4
4
  end
@@ -5,6 +5,24 @@ module Spree
5
5
  class IntentsController < ::Spree::Api::V2::BaseController
6
6
  include Spree::Api::V2::Storefront::OrderConcern
7
7
 
8
+ def payment_confirmation_data
9
+ spree_authorize! :update, spree_current_order, order_token
10
+
11
+ if spree_current_order.intents?
12
+ spree_current_order.process_payments!
13
+ spree_current_order.reload
14
+ last_valid_payment = spree_current_order.payments.valid.where.not(intent_client_key: nil).last
15
+
16
+ if last_valid_payment.present?
17
+ client_secret = last_valid_payment.intent_client_key
18
+ publishable_key = last_valid_payment.payment_method&.preferred_publishable_key
19
+ return render json: { client_secret: client_secret, pk_key: publishable_key }, status: :ok
20
+ end
21
+ end
22
+
23
+ render_error_payload(I18n.t('spree.no_payment_authorization_needed'))
24
+ end
25
+
8
26
  def handle_response
9
27
  if params['response']['error']
10
28
  invalidate_payment
@@ -4,7 +4,7 @@ module SpreeGateway
4
4
 
5
5
  config.autoload_paths += %W(#{config.root}/lib)
6
6
 
7
- initializer "spree.gateway.payment_methods", :after => "spree.register.payment_methods" do |app|
7
+ config.after_initialize do |app|
8
8
  app.config.spree.payment_methods << Spree::Gateway::AuthorizeNet
9
9
  app.config.spree.payment_methods << Spree::Gateway::AuthorizeNetCim
10
10
  app.config.spree.payment_methods << Spree::Gateway::BalancedGateway
@@ -41,6 +41,9 @@ module SpreeGateway
41
41
  Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/spree/*_decorator*.rb')) do |c|
42
42
  Rails.application.config.cache_classes ? require(c) : load(c)
43
43
  end
44
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/spree_gateway/*_decorator*.rb')) do |c|
45
+ Rails.application.config.cache_classes ? require(c) : load(c)
46
+ end
44
47
  Dir.glob(File.join(File.dirname(__FILE__), '../../lib/active_merchant/**/*_decorator*.rb')) do |c|
45
48
  Rails.application.config.cache_classes ? require(c) : load(c)
46
49
  end
@@ -1,5 +1,5 @@
1
1
  module SpreeGateway
2
2
  def self.version
3
- '3.9.3'
3
+ '3.10.0'
4
4
  end
5
5
  end
@@ -13,7 +13,8 @@ describe 'Admin Panel Stripe elements payment', type: :feature do
13
13
  Spree::Gateway::StripeElementsGateway.create!(
14
14
  name: 'Stripe Element',
15
15
  preferred_secret_key: 'sk_test_VCZnDv3GLU15TRvn8i2EsaAN',
16
- preferred_publishable_key: 'pk_test_Cuf0PNtiAkkMpTVC2gwYDMIg'
16
+ preferred_publishable_key: 'pk_test_Cuf0PNtiAkkMpTVC2gwYDMIg',
17
+ stores: [::Spree::Store.default]
17
18
  )
18
19
  end
19
20
 
@@ -8,15 +8,21 @@ describe "Stripe checkout", type: :feature, js: true do
8
8
  let!(:mug) { create(:product, :name => "RoR Mug") }
9
9
  let!(:stripe_payment_method) do
10
10
  Spree::Gateway::StripeGateway.create!(
11
- :name => "Stripe",
12
- :preferred_secret_key => "sk_test_VCZnDv3GLU15TRvn8i2EsaAN",
13
- :preferred_publishable_key => "pk_test_Cuf0PNtiAkkMpTVC2gwYDMIg"
11
+ name: 'Stripe',
12
+ preferred_secret_key: 'sk_test_VCZnDv3GLU15TRvn8i2EsaAN',
13
+ preferred_publishable_key: 'pk_test_Cuf0PNtiAkkMpTVC2gwYDMIg',
14
+ stores: [::Spree::Store.default]
14
15
  )
15
16
  end
16
17
 
17
18
  let!(:zone) { create(:zone) }
18
19
 
19
20
  before do
21
+ if Spree.version.to_f >= 4.2
22
+ payment_method = Spree::PaymentMethod.first
23
+ payment_method.update!(stores: [Spree::Store.first])
24
+ end
25
+
20
26
  user = create(:user)
21
27
 
22
28
  order = OrderWalkthrough.up_to(:delivery)
@@ -9,7 +9,8 @@ describe 'Stripe Elements 3ds checkout', type: :feature, js: true do
9
9
  name: 'Stripe',
10
10
  preferred_secret_key: 'sk_test_VCZnDv3GLU15TRvn8i2EsaAN',
11
11
  preferred_publishable_key: 'pk_test_Cuf0PNtiAkkMpTVC2gwYDMIg',
12
- preferred_intents: preferred_intents
12
+ preferred_intents: preferred_intents,
13
+ stores: [::Spree::Store.default]
13
14
  )
14
15
  end
15
16
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Gateway::AuthorizeNet do
4
- let (:gateway) { described_class.create!(name: 'Authorize.net') }
4
+ let (:gateway) { described_class.create!(name: 'Authorize.net', stores: [::Spree::Store.default]) }
5
5
 
6
6
  context '.provider_class' do
7
7
  it 'is a AuthorizeNet gateway' do
@@ -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
@@ -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,198 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Api V2 Storefront Intents Spec', type: :request do
4
+ let!(:store) { Spree::Store.default }
5
+ let(:currency) { store.default_currency }
6
+ let(:user) { create(:user) }
7
+ let(:order) { create(:order, user: user, store: store, currency: currency) }
8
+
9
+ include_context 'API v2 tokens'
10
+
11
+ describe '#payment_confirmation_data' do
12
+ subject :post_payment_confirmation_data do
13
+ post '/api/v2/storefront/intents/payment_confirmation_data', headers: headers, params: params
14
+ end
15
+
16
+ include_context 'API v2 tokens'
17
+
18
+ context 'when user is authorized' do
19
+ let(:params) { {} }
20
+ let(:headers) { headers_bearer.merge(headers_order_token) }
21
+
22
+ context 'when current order has payment intent' do
23
+ let(:provider) do
24
+ double('provider').tap do |p|
25
+ p.stub(:purchase)
26
+ p.stub(:authorize)
27
+ p.stub(:capture)
28
+ end
29
+ end
30
+ let(:gateway) do
31
+ gateway = Spree::Gateway::StripeElementsGateway.new(active: true)
32
+ gateway.set_preference :secret_key, 'secret_key'
33
+ gateway.set_preference :intents, 'true'
34
+ gateway.name = 'Stripe Elements'
35
+ gateway.stores << order.store
36
+ allow(gateway).to receive(:options_for_purchase_or_auth).and_return ['money','cc','opts']
37
+ allow(gateway).to receive_messages provider: provider
38
+ allow(gateway).to receive_messages source_required: true
39
+ allow(gateway).to receive_messages create_profile: true
40
+ gateway
41
+ end
42
+ let!(:payment) do
43
+ create(:payment,
44
+ source: create(:credit_card),
45
+ order: order,
46
+ payment_method: gateway,
47
+ state: 'pending',
48
+ intent_client_key: intent_client_key)
49
+ end
50
+
51
+ before { post_payment_confirmation_data }
52
+
53
+ context 'when last valid payment has intent client key' do
54
+ let(:intent_client_key) { 'intent_client_key' }
55
+
56
+ it_behaves_like 'returns 200 HTTP status'
57
+ end
58
+
59
+ context 'when last valid payment does not have intent client key' do
60
+ let(:intent_client_key) { nil }
61
+
62
+ it_behaves_like 'returns 422 HTTP status'
63
+
64
+ it 'includes valid response message' do
65
+ expect(response.body).to include I18n.t('spree.no_payment_authorization_needed')
66
+ end
67
+ end
68
+
69
+ context 'when current order has completed payments' do
70
+ let(:order) { create(:order_ready_to_ship, user: user, store: store, currency: currency) }
71
+ let(:intent_client_key) { 'intent_client_key' }
72
+
73
+ it_behaves_like 'returns 403 HTTP status'
74
+ end
75
+ end
76
+
77
+ context 'when current order does not have payment intent' do
78
+ before { post_payment_confirmation_data }
79
+
80
+ it_behaves_like 'returns 422 HTTP status'
81
+
82
+ it 'includes valid response message' do
83
+ expect(response.body).to include I18n.t('spree.no_payment_authorization_needed')
84
+ end
85
+ end
86
+ end
87
+
88
+ context 'when some authorization data is missing' do
89
+ let(:params) { {} }
90
+ let(:headers) { {} }
91
+
92
+ before { post_payment_confirmation_data }
93
+
94
+ it_behaves_like 'returns 403 HTTP status'
95
+ end
96
+ end
97
+
98
+ describe '#handle_response' do
99
+ subject :post_handle_response do
100
+ post '/api/v2/storefront/intents/handle_response', headers: headers, params: params
101
+ end
102
+
103
+ let(:headers) { headers_bearer.merge(headers_order_token) }
104
+ let(:provider) do
105
+ double('provider').tap do |p|
106
+ p.stub(:purchase)
107
+ p.stub(:authorize)
108
+ p.stub(:capture)
109
+ end
110
+ end
111
+ let(:gateway) do
112
+ gateway = Spree::Gateway::StripeElementsGateway.new(active: true)
113
+ gateway.set_preference :secret_key, 'secret_key'
114
+ gateway.set_preference :intents, 'true'
115
+ gateway.name = 'Stripe Elements'
116
+ gateway.stores << order.store
117
+ allow(gateway).to receive(:options_for_purchase_or_auth).and_return ['money','cc','opts']
118
+ allow(gateway).to receive_messages provider: provider
119
+ allow(gateway).to receive_messages source_required: true
120
+ allow(gateway).to receive_messages create_profile: true
121
+ gateway
122
+ end
123
+ let!(:payment) do
124
+ create(:payment,
125
+ source: create(:credit_card),
126
+ order: order,
127
+ payment_method: gateway,
128
+ state: 'pending',
129
+ intent_client_key: 'intent_client_key')
130
+ end
131
+
132
+ include_context 'API v2 tokens'
133
+
134
+ context 'when response param does not include errors' do
135
+ let(:params) do
136
+ {
137
+ response: {
138
+ message: 'everything is ok'
139
+ }
140
+ }
141
+ end
142
+
143
+ before { post_handle_response }
144
+
145
+ it_behaves_like 'returns 200 HTTP status'
146
+
147
+ it 'includes valid response message' do
148
+ expect(response.body).to include I18n.t('spree.payment_successfully_authorized')
149
+ end
150
+
151
+ it 'does not update payment' do
152
+ expect { post_handle_response }.not_to change { payment }
153
+ end
154
+ end
155
+
156
+ context 'when response param includes errors' do
157
+ let(:payment_response_code) { payment.response_code }
158
+ let(:params) do
159
+ {
160
+ response: {
161
+ error: {
162
+ payment_intent: {
163
+ id: payment_response_code
164
+ },
165
+ message: 'something went wrong'
166
+ }
167
+ }
168
+ }
169
+ end
170
+
171
+ before { post_handle_response }
172
+
173
+ it_behaves_like 'returns 422 HTTP status'
174
+
175
+ context 'when payment to invalidate is found' do
176
+ it 'changes payment state to failed' do
177
+ expect(payment.state).not_to eq 'failed'
178
+ expect(payment.reload.state).to eq 'failed'
179
+ end
180
+
181
+ it 'clears payment intent_client_key' do
182
+ expect(payment.intent_client_key).not_to be nil
183
+ expect(payment.reload.intent_client_key).to be nil
184
+ end
185
+
186
+ it 'includes valid response message' do
187
+ expect(response.body).to include params[:response][:error][:message]
188
+ end
189
+ end
190
+
191
+ context 'when payment to invalidate is not found' do
192
+ let(:payment_response_code) { 'unexisting response code' }
193
+
194
+ it_behaves_like 'returns 404 HTTP status'
195
+ end
196
+ end
197
+ end
198
+ end
@@ -28,11 +28,10 @@ Gem::Specification.new do |s|
28
28
  s.require_path = 'lib'
29
29
  s.requirements << 'none'
30
30
 
31
- spree_version = '>= 3.7.0', '< 5.0'
32
- s.add_dependency 'spree_core', spree_version
31
+ s.add_dependency 'spree_core', '>= 3.7.0'
33
32
  s.add_dependency 'spree_extension'
34
33
 
35
- s.add_development_dependency 'braintree', '~>2.78'
34
+ s.add_development_dependency 'braintree', '~> 3.0.0'
36
35
  s.add_development_dependency 'rspec-activemodel-mocks'
37
36
  s.add_development_dependency 'spree_dev_tools'
38
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.9.3
4
+ version: 3.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spree Commerce
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-14 00:00:00.000000000 Z
11
+ date: 2022-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -17,9 +17,6 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.7.0
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '5.0'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +24,6 @@ dependencies:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 3.7.0
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '5.0'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: spree_extension
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -50,14 +44,14 @@ dependencies:
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '2.78'
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: '2.78'
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,17 +89,13 @@ 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
- - app/models/spree/credit_card_decorator.rb
109
99
  - app/models/spree/gateway/authorize_net.rb
110
100
  - app/models/spree/gateway/authorize_net_cim.rb
111
101
  - app/models/spree/gateway/balanced_gateway.rb
@@ -136,8 +126,11 @@ files:
136
126
  - app/models/spree/gateway/stripe_gateway.rb
137
127
  - app/models/spree/gateway/usa_epay_transaction.rb
138
128
  - app/models/spree/gateway/worldpay.rb
139
- - app/models/spree/order_decorator.rb
140
- - 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
141
134
  - app/views/spree/checkout/_payment_confirm.html.erb
142
135
  - config/initializers/inflections.rb
143
136
  - config/initializers/spree_permitted_attributes.rb
@@ -146,16 +139,8 @@ files:
146
139
  - config/locales/en.yml
147
140
  - config/locales/sv.yml
148
141
  - config/routes.rb
149
- - db/migrate/20121017004102_update_braintree_payment_method_type.rb
150
- - db/migrate/20130213222555_update_stripe_payment_method_type.rb
151
- - db/migrate/20130415222802_update_balanced_payment_method_type.rb
152
- - db/migrate/20131008221012_update_paypal_payment_method_type.rb
153
- - db/migrate/20131112133401_migrate_stripe_preferences.rb
154
142
  - db/migrate/20200317135551_add_spree_check_payment_source.rb
155
143
  - db/migrate/20200422114908_add_intent_key_to_payment.rb
156
- - gemfiles/spree_3_7.gemfile
157
- - gemfiles/spree_4_1.gemfile
158
- - gemfiles/spree_master.gemfile
159
144
  - lib/active_merchant/billing/stripe_gateway_decorator.rb
160
145
  - lib/controllers/spree/api/v2/storefront/intents_controller.rb
161
146
  - lib/controllers/spree/apple_pay_domain_verification_controller.rb
@@ -194,7 +179,7 @@ files:
194
179
  - spec/models/gateway/braintree_gateway_spec.rb
195
180
  - spec/models/gateway/card_save_spec.rb
196
181
  - spec/models/gateway/cyber_source_spec.rb
197
- - spec/models/gateway/data_cache_spec.rb
182
+ - spec/models/gateway/data_cash_spec.rb
198
183
  - spec/models/gateway/epay_spec.rb
199
184
  - spec/models/gateway/eway_rapid_spec.rb
200
185
  - spec/models/gateway/eway_spec.rb
@@ -214,6 +199,7 @@ files:
214
199
  - spec/models/gateway/worldpay_spec.rb
215
200
  - spec/models/spree/order_spec.rb
216
201
  - spec/requests/apple_pay_domain_verification.rb
202
+ - spec/requests/spree/api/v2/storefront/intents_controller_spec.rb
217
203
  - spec/spec_helper.rb
218
204
  - spec/support/order_walktrough.rb
219
205
  - spec/support/wait_for_stripe.rb
@@ -224,9 +210,9 @@ licenses:
224
210
  - BSD-3-Clause
225
211
  metadata:
226
212
  bug_tracker_uri: https://github.com/spree/spree_gateway/issues
227
- changelog_uri: https://github.com/spree/spree_gateway/releases/tag/v3.9.3
213
+ changelog_uri: https://github.com/spree/spree_gateway/releases/tag/v3.10.0
228
214
  documentation_uri: https://guides.spreecommerce.org/
229
- source_code_uri: https://github.com/spree/spree_gateway/tree/v3.9.3
215
+ source_code_uri: https://github.com/spree/spree_gateway/tree/v3.10.0
230
216
  post_install_message:
231
217
  rdoc_options: []
232
218
  require_paths:
@@ -243,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
229
  version: '0'
244
230
  requirements:
245
231
  - none
246
- rubygems_version: 3.2.3
232
+ rubygems_version: 3.0.9
247
233
  signing_key:
248
234
  specification_version: 4
249
235
  summary: Additional Payment Gateways for Spree Commerce
@@ -260,7 +246,7 @@ test_files:
260
246
  - spec/models/gateway/braintree_gateway_spec.rb
261
247
  - spec/models/gateway/card_save_spec.rb
262
248
  - spec/models/gateway/cyber_source_spec.rb
263
- - spec/models/gateway/data_cache_spec.rb
249
+ - spec/models/gateway/data_cash_spec.rb
264
250
  - spec/models/gateway/epay_spec.rb
265
251
  - spec/models/gateway/eway_rapid_spec.rb
266
252
  - spec/models/gateway/eway_spec.rb
@@ -280,6 +266,7 @@ test_files:
280
266
  - spec/models/gateway/worldpay_spec.rb
281
267
  - spec/models/spree/order_spec.rb
282
268
  - spec/requests/apple_pay_domain_verification.rb
269
+ - spec/requests/spree/api/v2/storefront/intents_controller_spec.rb
283
270
  - spec/spec_helper.rb
284
271
  - spec/support/order_walktrough.rb
285
272
  - spec/support/wait_for_stripe.rb
data/Appraisals DELETED
@@ -1,15 +0,0 @@
1
- appraise 'spree-3-7' do
2
- gem 'spree', '~> 3.7.0'
3
- gem 'rails-controller-testing'
4
- gem 'sass-rails'
5
- end
6
-
7
- appraise 'spree-4-1' do
8
- gem 'spree', '~> 4.1.0'
9
- gem 'rails-controller-testing'
10
- end
11
-
12
- appraise 'spree-master' do
13
- gem 'spree', github: 'spree/spree', branch: 'master'
14
- gem 'rails-controller-testing'
15
- end
@@ -1,9 +0,0 @@
1
- class UpdateBraintreePaymentMethodType < SpreeExtension::Migration[4.2]
2
- def up
3
- Spree::PaymentMethod.where(:type => "Spree::Gateway::Braintree").update_all(:type => "Spree::Gateway::BraintreeGateway")
4
- end
5
-
6
- def down
7
- Spree::PaymentMethod.where(:type => "Spree::Gateway::BraintreeGateway").update_all(:type => "Spree::Gateway::Braintree")
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class UpdateStripePaymentMethodType < SpreeExtension::Migration[4.2]
2
- def up
3
- Spree::PaymentMethod.where(:type => "Spree::Gateway::Stripe").update_all(:type => "Spree::Gateway::StripeGateway")
4
- end
5
-
6
- def down
7
- Spree::PaymentMethod.where(:type => "Spree::Gateway::StripeGateway").update_all(:type => "Spree::Gateway::Stripe")
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class UpdateBalancedPaymentMethodType < SpreeExtension::Migration[4.2]
2
- def up
3
- Spree::PaymentMethod.where(:type => "Spree::Gateway::Balanced").update_all(:type => "Spree::Gateway::BalancedGateway")
4
- end
5
-
6
- def down
7
- Spree::PaymentMethod.where(:type => "Spree::Gateway::BalancedGateway").update_all(:type => "Spree::Gateway::Balanced")
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class UpdatePaypalPaymentMethodType < SpreeExtension::Migration[4.2]
2
- def up
3
- Spree::PaymentMethod.where(:type => "Spree::Gateway::PayPal").update_all(:type => "Spree::Gateway::PayPalGateway")
4
- end
5
-
6
- def down
7
- Spree::PaymentMethod.where(:type => "Spree::Gateway::PayPalGateway").update_all(:type => "Spree::Gateway::PayPal")
8
- end
9
- end
@@ -1,8 +0,0 @@
1
- class MigrateStripePreferences < SpreeExtension::Migration[4.2]
2
- def up
3
- Spree::Preference.where("#{ActiveRecord::Base.connection.quote_column_name("key")} LIKE 'spree/gateway/stripe_gateway/login%'").each do |pref|
4
- pref.key = pref.key.gsub('login', 'secret_key')
5
- pref.save
6
- end
7
- end
8
- end
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails-controller-testing"
6
- gem "spree", "~> 3.7.0"
7
- gem "sass-rails"
8
-
9
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails-controller-testing"
6
- gem "spree", "~> 4.1.0"
7
-
8
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails-controller-testing"
6
- gem "spree", github: "spree/spree", branch: "master"
7
-
8
- gemspec path: "../"