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 +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
|