solidus_gateway 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: edb5286317a172fc0994ca78e1d5532a7c648cfd
4
- data.tar.gz: b808a3847b095a1dfb4d44ded6c8a04639281f7d
2
+ SHA256:
3
+ metadata.gz: c025fd33d729f47d657ff3cefcba4d26635266839cb08c3f06879d6c5dfa8542
4
+ data.tar.gz: eda6311a3cbbea6a82f0d5c54c88a5aca6e82a4f1e4328b0be1d43b1bda5bd7e
5
5
  SHA512:
6
- metadata.gz: 18233008d74271e67a697f4705c6b67b3f80a502000522670baaf6944cb162c5eaf299bb5fe7b3c3dfd44315472b8b08d4018b270bd1bea59e626054fb2b2534
7
- data.tar.gz: e7458514a6d6be0b16a51e610f47e61eca217d8fc3a858bf70f771cda35b17a2c71da427591ea7f03cb47287d1e0cb10e8c2359b2885b0ecc7c4e67b0e30e480
6
+ metadata.gz: 604d98c648d50d90284e3ad4ba83f7b6692126afe71bd166d2907724c27124fe051439d2d4ff2f8e6209e3c269c8677b5aec0e4fffe3dab7635e09d7384072fb
7
+ data.tar.gz: 3370a0c69d62df8a89df920c1a23d019a948085ce0accba5f8718496025b050f4095c07bff835b016d4c77e07bf2b2cd96b4749b8dff628cd602aa3bc635db94
@@ -2,9 +2,13 @@ sudo: required
2
2
  dist: trusty
3
3
  cache: bundler
4
4
  language: ruby
5
+ addons:
6
+ chrome: stable
5
7
  rvm:
6
- - 2.3.1
8
+ - 2.5
7
9
  before_install:
10
+ - gem update --system
11
+ - gem install bundler
8
12
  - mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'travis'@'%';"
9
13
  env:
10
14
  matrix:
@@ -16,6 +20,8 @@ env:
16
20
  - SOLIDUS_BRANCH=v2.1 DB=postgres
17
21
  - SOLIDUS_BRANCH=v2.2 DB=postgres
18
22
  - SOLIDUS_BRANCH=v2.3 DB=postgres
23
+ - SOLIDUS_BRANCH=v2.4 DB=postgres
24
+ - SOLIDUS_BRANCH=v2.5 DB=postgres
19
25
  - SOLIDUS_BRANCH=master DB=postgres
20
26
  - SOLIDUS_BRANCH=v1.1 DB=mysql
21
27
  - SOLIDUS_BRANCH=v1.2 DB=mysql
@@ -25,4 +31,6 @@ env:
25
31
  - SOLIDUS_BRANCH=v2.1 DB=mysql
26
32
  - SOLIDUS_BRANCH=v2.2 DB=mysql
27
33
  - SOLIDUS_BRANCH=v2.3 DB=mysql
34
+ - SOLIDUS_BRANCH=v2.4 DB=mysql
35
+ - SOLIDUS_BRANCH=v2.5 DB=mysql
28
36
  - SOLIDUS_BRANCH=master DB=mysql
data/Gemfile CHANGED
@@ -7,11 +7,23 @@ if branch == 'master' || branch >= "v2.0"
7
7
  gem "rails-controller-testing", group: :test
8
8
  end
9
9
 
10
- gem 'pg'
11
- gem 'mysql2'
10
+ # hacks to speed up bundler resolution
11
+ if branch == 'master' || branch >= "v2.3"
12
+ gem 'rails', '~> 5.1.6'
13
+ elsif branch >= "v2.0"
14
+ gem 'rails', '~> 5.0.7'
15
+ else
16
+ gem "rails", "~> 4.2.10"
17
+ end
18
+
19
+ gem 'pg', '~> 0.21'
20
+ gem 'mysql2', '~> 0.4.10'
21
+
22
+ gem 'chromedriver-helper' if ENV['CI']
12
23
 
13
24
  group :development, :test do
14
25
  gem "pry-rails"
26
+ gem "ffaker"
15
27
  end
16
28
 
17
29
  gemspec
data/README.md CHANGED
@@ -1,12 +1,29 @@
1
1
  Solidus Gateway
2
2
  ===============
3
-
4
- Community supported Solidus Payment Method Gateways. It works as a wrapper for
5
- active_merchant gateway. Note that for some gateways you might still need to
3
+ Community supported Solidus Payment Methods. It works as a wrapper for
4
+ active_merchant gateways. Note that for some gateways you might still need to
6
5
  add another gem to your Gemfile to make it work. For example active_merchant
7
6
  require `braintree` but it doesn't include that gem on its gemspec. So you
8
7
  need to manually add it to your rails app Gemfile.
9
8
 
9
+ ---
10
+
11
+ **DEPRECATION NOTICE**
12
+
13
+ This extension is only ported over to Solidus to continue supporting stores upgrading from Spree.
14
+
15
+ For **new stores we strongly recommend** using one of these payment provider extensions:
16
+
17
+ * [`solidus_braintree_paypal`](https://github.com/solidusio/solidus_paypal_braintree) for Braintree provided payment methods like PayPal, Apple Pay and credit cards
18
+ * [`solidus_adyen`](https://github.com/StemboltHQ/solidus-adyen) for Adyen provided payment methods
19
+ * [`solidus_affirm`](https://github.com/StemboltHQ/solidus_affirm) for Affirm provided payment methods
20
+ * [`solidus_klarna_payments`](https://github.com/bitspire/solidus_klarna_payments)
21
+ * [`solidus_paybright`](https://github.com/StemboltHQ/solidus_paybright)
22
+
23
+ Although we will keep supporting Bug fixes for existing payment methods we **will not accept new payment methods** to be included in this gem.
24
+
25
+ Please create your own extension for new payment methods. Take one of the above examples as starting point for your extension.
26
+
10
27
  Installation
11
28
  ------------
12
29
 
@@ -1,5 +1,6 @@
1
1
  require "solidus_core"
2
2
  require "solidus_support"
3
+ require "active_merchant"
3
4
  require "spree_gateway/engine"
4
5
  require "solidus_gateway/version"
5
6
  require "sass/rails"
@@ -1,3 +1,3 @@
1
1
  module SolidusGateway
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
@@ -2,8 +2,6 @@ module SpreeGateway
2
2
  class Engine < Rails::Engine
3
3
  engine_name 'solidus_gateway'
4
4
 
5
- config.autoload_paths += %W(#{config.root}/lib)
6
-
7
5
  initializer "spree.gateway.payment_methods", :after => "spree.register.payment_methods" do |app|
8
6
  app.config.spree.payment_methods << Spree::Gateway::AuthorizeNetCim
9
7
  app.config.spree.payment_methods << Spree::Gateway::AuthorizeNet
@@ -22,7 +20,6 @@ module SpreeGateway
22
20
  app.config.spree.payment_methods << Spree::Gateway::UsaEpay
23
21
  app.config.spree.payment_methods << Spree::Gateway::BalancedGateway
24
22
  app.config.spree.payment_methods << Spree::Gateway::DataCash
25
- app.config.spree.payment_methods << Spree::Gateway::UsaEpay
26
23
  app.config.spree.payment_methods << Spree::Gateway::PinGateway
27
24
  app.config.spree.payment_methods << Spree::Gateway::Paymill
28
25
  app.config.spree.payment_methods << Spree::Gateway::PayflowPro
@@ -40,36 +37,17 @@ module SpreeGateway
40
37
  initializer "spree.gateway.braintree_gateway.application_id" do |app|
41
38
  # NOTE: if the braintree gem is not loaded, calling ActiveMerchant::Billing::BraintreeBlueGateway crashes
42
39
  # therefore, check here to see if Braintree exists before trying to call it
43
- if defined?(Braintree)
40
+ if defined?(Braintree)
44
41
  ActiveMerchant::Billing::BraintreeBlueGateway.application_id = "Solidus"
45
42
  end
46
43
  end
47
44
 
48
- def self.activate
49
- if SpreeGateway::Engine.frontend_available?
50
- Rails.application.config.assets.precompile += [
51
- 'lib/assets/javascripts/spree/frontend/solidus_gateway.js',
52
- 'lib/assets/javascripts/spree/frontend/solidus_gateway.css',
53
- ]
54
- end
55
- end
56
-
57
- def self.backend_available?
58
- @@backend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Backend::Engine')
59
- end
60
-
61
- def self.frontend_available?
62
- @@frontend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Frontend::Engine')
63
- end
64
-
65
- if self.backend_available?
45
+ if SolidusSupport.backend_available?
66
46
  paths["app/views"] << "lib/views/backend"
67
47
  end
68
48
 
69
- if self.frontend_available?
49
+ if SolidusSupport.frontend_available?
70
50
  paths["app/views"] << "lib/views/frontend"
71
51
  end
72
-
73
- config.to_prepare &method(:activate).to_proc
74
52
  end
75
53
  end
@@ -0,0 +1 @@
1
+ <%= render partial: "spree/checkout/existing_payment/gateway", locals: { wallet_payment_source: wallet_payment_source, default: default } %>
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.requirements << "none"
25
25
 
26
26
  s.add_dependency "solidus_core", [">= 1.1", "< 3"]
27
- s.add_dependency "solidus_support"
27
+ s.add_dependency "solidus_support", ">= 0.1.3"
28
28
 
29
29
  # ActiveMerchant v1.58 through v1.59 introduced a breaking change
30
30
  # to the stripe gateway.
@@ -36,11 +36,10 @@ Gem::Specification.new do |s|
36
36
  s.add_development_dependency "rspec-rails", "~> 3.2"
37
37
  s.add_development_dependency "simplecov"
38
38
  s.add_development_dependency "sqlite3"
39
- s.add_development_dependency "sass-rails"
40
- s.add_development_dependency "coffee-rails"
41
- s.add_development_dependency "factory_girl", "~> 4.4"
39
+ s.add_development_dependency "factory_bot", "~> 4.4"
42
40
  s.add_development_dependency "capybara"
43
41
  s.add_development_dependency "capybara-screenshot"
44
42
  s.add_development_dependency "poltergeist", "~> 1.9"
43
+ s.add_development_dependency "selenium-webdriver"
45
44
  s.add_development_dependency "database_cleaner", "~> 1.5"
46
45
  end
@@ -2,12 +2,12 @@ require 'spec_helper'
2
2
 
3
3
  RSpec.describe "Stripe checkout", type: :feature do
4
4
  before do
5
- FactoryGirl.create(:store)
5
+ FactoryBot.create(:store)
6
6
  # Set up a zone
7
- zone = FactoryGirl.create(:zone)
8
- country = FactoryGirl.create(:country)
7
+ zone = FactoryBot.create(:zone)
8
+ country = FactoryBot.create(:country)
9
9
  zone.members << Spree::ZoneMember.create!(zoneable: country)
10
- FactoryGirl.create(:free_shipping_method)
10
+ FactoryBot.create(:free_shipping_method)
11
11
 
12
12
  Spree::Gateway::StripeGateway.create!(
13
13
  name: "Stripe",
@@ -15,7 +15,7 @@ RSpec.describe "Stripe checkout", type: :feature do
15
15
  preferred_publishable_key: "pk_test_Cuf0PNtiAkkMpTVC2gwYDMIg",
16
16
  )
17
17
 
18
- FactoryGirl.create(:product, name: "DL-44")
18
+ FactoryBot.create(:product, name: "DL-44")
19
19
 
20
20
  visit spree.root_path
21
21
  click_link "DL-44"
@@ -41,20 +41,20 @@ RSpec.describe "Stripe checkout", type: :feature do
41
41
 
42
42
  # Delivery
43
43
  expect(page).to have_current_path("/checkout/delivery")
44
+ expect(page).to have_content("UPS Ground")
44
45
  click_on "Save and Continue"
46
+
47
+ expect(page).to have_current_path("/checkout/payment")
45
48
  end
46
49
 
47
50
  # This will fetch a token from Stripe.com and then pass that to the webserver.
48
51
  # The server then processes the payment using that token.
49
- it "can process a valid payment (with JS)", js: true do
52
+ it "can process a valid payment", js: true do
50
53
  fill_in "Card Number", with: "4242 4242 4242 4242"
51
- # Otherwise ccType field does not get updated correctly
52
- page.execute_script("$('.cardNumber').trigger('change')")
53
54
  fill_in "Card Code", with: "123"
54
55
  fill_in "Expiration", with: "01 / #{Time.now.year + 1}"
55
56
  click_button "Save and Continue"
56
- sleep(5) # Wait for Stripe API to return + form to submit
57
- expect(page.current_url).to include("/checkout/confirm")
57
+ expect(page).to have_current_path("/checkout/confirm")
58
58
  click_button "Place Order"
59
59
  expect(page).to have_content("Your order has been processed successfully")
60
60
  end
@@ -161,11 +161,11 @@ describe Spree::Gateway::StripeGateway do
161
161
  gateway
162
162
  end
163
163
 
164
- let!(:store) { FactoryGirl.create(:store) }
164
+ let!(:store) { FactoryBot.create(:store) }
165
165
  let(:order) { Spree::Order.create! }
166
166
 
167
167
  let(:card) do
168
- FactoryGirl.create(
168
+ FactoryBot.create(
169
169
  :credit_card,
170
170
  gateway_customer_profile_id: 'cus_abcde',
171
171
  imported: false
@@ -5,51 +5,22 @@ ENV["RAILS_ENV"] ||= "test"
5
5
 
6
6
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
7
7
 
8
- require "rspec/rails"
8
+ require 'solidus_support/extension/feature_helper'
9
9
 
10
- require "capybara/rspec"
11
- require 'capybara-screenshot/rspec'
12
- require 'capybara/poltergeist'
13
- Capybara.register_driver(:poltergeist) do |app|
14
- Capybara::Poltergeist::Driver.new app, timeout: 90
15
- end
16
- Capybara.javascript_driver = :poltergeist
17
- Capybara.default_max_wait_time = 10
18
-
19
- require "database_cleaner"
20
- require "braintree"
21
- require "ffaker"
10
+ require 'selenium-webdriver'
11
+ Capybara.javascript_driver = :selenium_chrome_headless
22
12
 
23
- require "spree/testing_support/factories"
24
- require "spree/testing_support/order_walkthrough"
13
+ require 'braintree'
25
14
 
26
15
  Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each { |f| require f }
27
16
 
28
17
  RSpec.configure do |config|
29
18
  config.infer_spec_type_from_file_location!
30
- config.mock_with :rspec
31
-
32
- config.filter_run focus: true
33
- config.run_all_when_everything_filtered = true
34
- config.use_transactional_fixtures = false
35
-
36
- config.include FactoryGirl::Syntax::Methods
37
19
 
38
20
  config.before :suite do
39
- DatabaseCleaner.clean_with :truncation
40
-
41
21
  # Don't log Braintree to STDOUT.
42
22
  Braintree::Configuration.logger = Logger.new("spec/dummy/tmp/log")
43
23
  end
44
24
 
45
- config.before do
46
- DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
47
- DatabaseCleaner.start
48
- end
49
-
50
- config.after do
51
- DatabaseCleaner.clean
52
- end
53
-
54
- FactoryGirl.find_definitions
25
+ FactoryBot.find_definitions
55
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-24 00:00:00.000000000 Z
11
+ date: 2018-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: 0.1.3
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '0'
46
+ version: 0.1.3
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activemerchant
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -127,35 +127,7 @@ dependencies:
127
127
  - !ruby/object:Gem::Version
128
128
  version: '0'
129
129
  - !ruby/object:Gem::Dependency
130
- name: sass-rails
131
- requirement: !ruby/object:Gem::Requirement
132
- requirements:
133
- - - ">="
134
- - !ruby/object:Gem::Version
135
- version: '0'
136
- type: :development
137
- prerelease: false
138
- version_requirements: !ruby/object:Gem::Requirement
139
- requirements:
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- version: '0'
143
- - !ruby/object:Gem::Dependency
144
- name: coffee-rails
145
- requirement: !ruby/object:Gem::Requirement
146
- requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- version: '0'
150
- type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- version: '0'
157
- - !ruby/object:Gem::Dependency
158
- name: factory_girl
130
+ name: factory_bot
159
131
  requirement: !ruby/object:Gem::Requirement
160
132
  requirements:
161
133
  - - "~>"
@@ -210,6 +182,20 @@ dependencies:
210
182
  - - "~>"
211
183
  - !ruby/object:Gem::Version
212
184
  version: '1.9'
185
+ - !ruby/object:Gem::Dependency
186
+ name: selenium-webdriver
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
213
199
  - !ruby/object:Gem::Dependency
214
200
  name: database_cleaner
215
201
  requirement: !ruby/object:Gem::Requirement
@@ -268,8 +254,6 @@ files:
268
254
  - db/migrate/20130415222802_update_balanced_payment_method_type.rb
269
255
  - db/migrate/20131008221012_update_paypal_payment_method_type.rb
270
256
  - db/migrate/20131112133401_migrate_stripe_preferences.rb
271
- - lib/assets/javascripts/spree/frontend/solidus_gateway.js
272
- - lib/assets/stylesheets/spree/frontend/solidus_gateway.css
273
257
  - lib/generators/solidus_gateway/install/install_generator.rb
274
258
  - lib/solidus_gateway.rb
275
259
  - lib/solidus_gateway/version.rb
@@ -279,6 +263,7 @@ files:
279
263
  - lib/views/backend/spree/admin/payments/source_forms/_quickcheckout.html.erb
280
264
  - lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb
281
265
  - lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb
266
+ - lib/views/frontend/spree/checkout/existing_payment/_stripe.html.erb
282
267
  - lib/views/frontend/spree/checkout/payment/_stripe.html.erb
283
268
  - solidus_gateway.gemspec
284
269
  - spec/features/stripe_checkout_spec.rb
@@ -326,7 +311,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
326
311
  requirements:
327
312
  - none
328
313
  rubyforge_project:
329
- rubygems_version: 2.6.11
314
+ rubygems_version: 2.7.6
330
315
  signing_key:
331
316
  specification_version: 4
332
317
  summary: Additional Payment Gateways for Solidus
@@ -1 +0,0 @@
1
- //= require spree/frontend
@@ -1,3 +0,0 @@
1
- /*
2
- *= require spree/frontend
3
- */