solidus_gateway 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
- */