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 +5 -5
- data/.travis.yml +9 -1
- data/Gemfile +14 -2
- data/README.md +20 -3
- data/lib/solidus_gateway.rb +1 -0
- data/lib/solidus_gateway/version.rb +1 -1
- data/lib/spree_gateway/engine.rb +3 -25
- data/lib/views/frontend/spree/checkout/existing_payment/_stripe.html.erb +1 -0
- data/solidus_gateway.gemspec +3 -4
- data/spec/features/stripe_checkout_spec.rb +10 -10
- data/spec/models/gateway/stripe_gateway_spec.rb +2 -2
- data/spec/spec_helper.rb +5 -34
- metadata +21 -36
- data/lib/assets/javascripts/spree/frontend/solidus_gateway.js +0 -1
- data/lib/assets/stylesheets/spree/frontend/solidus_gateway.css +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c025fd33d729f47d657ff3cefcba4d26635266839cb08c3f06879d6c5dfa8542
|
4
|
+
data.tar.gz: eda6311a3cbbea6a82f0d5c54c88a5aca6e82a4f1e4328b0be1d43b1bda5bd7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 604d98c648d50d90284e3ad4ba83f7b6692126afe71bd166d2907724c27124fe051439d2d4ff2f8e6209e3c269c8677b5aec0e4fffe3dab7635e09d7384072fb
|
7
|
+
data.tar.gz: 3370a0c69d62df8a89df920c1a23d019a948085ce0accba5f8718496025b050f4095c07bff835b016d4c77e07bf2b2cd96b4749b8dff628cd602aa3bc635db94
|
data/.travis.yml
CHANGED
@@ -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.
|
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
|
-
|
11
|
-
|
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
|
-
|
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
|
|
data/lib/solidus_gateway.rb
CHANGED
data/lib/spree_gateway/engine.rb
CHANGED
@@ -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
|
-
|
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
|
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 } %>
|
data/solidus_gateway.gemspec
CHANGED
@@ -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 "
|
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
|
-
|
5
|
+
FactoryBot.create(:store)
|
6
6
|
# Set up a zone
|
7
|
-
zone =
|
8
|
-
country =
|
7
|
+
zone = FactoryBot.create(:zone)
|
8
|
+
country = FactoryBot.create(:country)
|
9
9
|
zone.members << Spree::ZoneMember.create!(zoneable: country)
|
10
|
-
|
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
|
-
|
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
|
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
|
-
|
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) {
|
164
|
+
let!(:store) { FactoryBot.create(:store) }
|
165
165
|
let(:order) { Spree::Order.create! }
|
166
166
|
|
167
167
|
let(:card) do
|
168
|
-
|
168
|
+
FactoryBot.create(
|
169
169
|
:credit_card,
|
170
170
|
gateway_customer_profile_id: 'cus_abcde',
|
171
171
|
imported: false
|
data/spec/spec_helper.rb
CHANGED
@@ -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
|
8
|
+
require 'solidus_support/extension/feature_helper'
|
9
9
|
|
10
|
-
require
|
11
|
-
|
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
|
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
|
-
|
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.
|
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:
|
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:
|
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:
|
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:
|
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
|
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
|