diff --git a/.travis.yml b/.travis.yml
index bb39952..e54fc8e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,12 +1,38 @@
-language: ruby
sudo: false
-cache: bundler
language: ruby
+dist: trusty
+cache:
+ bundler: true
+ directories:
+ - travis_phantomjs
before_install:
- - mkdir -p "$HOME/bin" && curl -o "$HOME/bin/phantomjs" https://s3.amazonaws.com/circle-downloads/phantomjs-2.1.1 && chmod +x "$HOME/bin/phantomjs"
- - export PATH="$HOME/bin:$PATH"
-env:
- - SOLIDUS_BRANCH=v1.0 DB=mysql
- - SOLIDUS_BRANCH=v1.0 DB=postgres
+ - "gem install bundler -v 1.14.6"
+ - "bundler -v"
+ - "phantomjs --version"
+ - "export PATH=$PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH"
+ - "if [ $(phantomjs --version) != '2.1.1' ]; then rm -rf $PWD/travis_phantomjs; mkdir -p $PWD/travis_phantomjs; fi"
+ - "if [ $(phantomjs --version) != '2.1.1' ]; then wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2; fi"
+ - "if [ $(phantomjs --version) != '2.1.1' ]; then tar -xvf $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs; fi"
+ - "phantomjs --version"
rvm:
- - 2.3.0
+ - 2.3.1
+env:
+ matrix:
+ - SOLIDUS_BRANCH=v2.0 DB=postgres
+ - SOLIDUS_BRANCH=v2.1 DB=postgres
+ - SOLIDUS_BRANCH=v2.2 DB=postgres
+ - SOLIDUS_BRANCH=v2.3 DB=postgres
+ - SOLIDUS_BRANCH=v2.4 DB=postgres
+ - SOLIDUS_BRANCH=v2.5 DB=postgres
+ - SOLIDUS_BRANCH=v2.6 DB=postgres
+ - SOLIDUS_BRANCH=v2.7 DB=postgres
+ - SOLIDUS_BRANCH=master DB=postgres
+ - SOLIDUS_BRANCH=v2.0 DB=mysql
+ - SOLIDUS_BRANCH=v2.1 DB=mysql
+ - SOLIDUS_BRANCH=v2.2 DB=mysql
+ - SOLIDUS_BRANCH=v2.3 DB=mysql
+ - SOLIDUS_BRANCH=v2.4 DB=mysql
+ - SOLIDUS_BRANCH=v2.5 DB=mysql
+ - SOLIDUS_BRANCH=v2.6 DB=mysql
+ - SOLIDUS_BRANCH=v2.7 DB=mysql
+ - SOLIDUS_BRANCH=master DB=mysql
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 12bef7d..ad8014d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -42,9 +42,9 @@ Here's a quick guide:
1. Fork the repo.
2. Run the tests. We only take pull requests with passing tests, and it's great
-to know that you have a clean slate:
+to know that you have a clean state:
- $ bash build.sh
+ $ bundle exec rspec
3. Create new branch then make changes and add tests for your changes. Only
refactoring and documentation changes require no new tests. If you are adding
diff --git a/LICENSE.md b/LICENSE.md
index 7dc304e..fb12899 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,4 +1,4 @@
-Copyright (c) 2013-2015 Spree Commerce and contributors.
+Copyright (c) 2019 Solidus Commerce and contributors.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
diff --git a/README.md b/README.md
index dd6b3f7..1846055 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,132 @@
-# Warning
+# Solidus PayPal Express
-# This project is no longer mainainted or used by Lostmyname. Please use Braintree instead.
+[![Build Status](https://travis-ci.org/adnotam/solidus_paypal_express.svg?branch=master)](https://travis-ci.org/adnotam/solidus_paypal_express)
-# License
+This is a port of the official [spree_paypal_express][4] extension.
-Copyright (c) 2013-2015 Spree Commerce and contributors, released under the [New BSD License][3]
+Behind-the-scenes, this extension uses [PayPal's Merchant Ruby SDK](https://github.com/paypal/merchant-sdk-ruby).
+
+## Installation
+
+1. Add this extension to your Gemfile with this line:
+
+ gem 'solidus_paypal_express', github: 'adnotam/solidus_paypal_express', branch: 'master'
+
+2. Install the gem using Bundler:
+
+ bundle install
+
+3. Copy & run migrations
+
+ bundle exec rails g solidus_paypal_express:install
+
+4. Restart your server
+
+If your server was running, restart it so that it can find the assets properly.
+
+### Sandbox Setup
+
+#### PayPal
+
+Go to [PayPal's Developer Website](https://developer.paypal.com/), sign in with your PayPal account, click "Applications" then "Sandbox Accounts" and create a new "Business" account. Once the account is created, click on the triangle next to its email address, then "Profile". The "API Credentials" tab will provide your API credentials (probably). If this tab is blank, try refreshing the page.
+
+You will also need a "Personal" account to test the transactions on your site. Create this in the same way, finding the account information under "Profile" as well. You may need to set a password in order to be able to log in to PayPal's sandbox for this user.
+
+#### Spree Setup
+
+In Spree, go to the admin backend, click "Configuration" and then "Payment Methods" and create a new payment method. Select "Spree::Gateway::PayPalExpress" as the provider, and click "Create". Enter the email address, password and signature from the "API Credentials" tab for the **Business** account on PayPal.
+
+### Production setup
+
+#### PayPal
+
+Sign in to PayPal, then click "Profile" and then (under "Account Information" on the left), click "API Access". On this page, select "Option 2" and click "View API Signature". The username, password and signature will be displayed on this screen.
+
+If you are unable to find it, then follow [PayPal's own documentation](https://developer.paypal.com/webapps/developer/docs/classic/api/apiCredentials/).
+
+#### Spree Setup
+
+Same as sandbox setup, but change "Server" from "sandbox" to "live".
+
+## Configuration
+
+The PayPal Express Checkout has [no less than 4.5 billion configuration options](https://github.com/paypal/merchant-sdk-ruby/blob/1d65e598d2f9f200f85c6b3338d4293dbed576d8/lib/paypal-sdk/merchant/data_types.rb#L830-L959).
+
+This Spree extension supports *some* of those. If your favourite is not here, then please submit an issue about it, or better still a patch to add it in.
+
+### Solution Type
+
+Determines whether or not a user needs a PayPal account to check out.
+
+```ruby
+payment_method.preferred_solution_type = "Mark"
+# or
+payment_method.preferred_solution_type = "Sole"
+```
+
+"Mark" if you do want users to have a paypal account, "Sole" otherwise.
+
+### Landing Page
+
+Determines which page to show users once they're redirected to PayPal.
+
+```ruby
+payment_method.preferred_landing_page = "Login"
+# or
+payment_method.preferred_landing_page = "Billing"
+```
+
+"Login" will show the users the login form for PayPal, and "Billing" will show them a form where they can enter their credit card data and possibly sign up for a PayPal account (depending on the Solution Type setting above).
+
+### Logo
+
+Determines what logo, if any, to display at the top left of the PayPal express checkout:
+
+```ruby
+payment_method.preferred_logourl = 'http://yoursite.com/images/checkout.jpg'
+```
+
+**Must** be an absolute path to the image.
+
+## Caveats
+
+*Caveat venditor*
+
+Paypal will refuse any order with a zero cost item.
+Any such item will be skipped and not displayed.
+
+PayPal will also refuse any order where item total (before taxes and shipping costs) is zero.
+In this case the PayPal checkout page will simply display "Current order".
+
+## Contributing
+
+In the spirit of [free software][1], **everyone** is encouraged to help improve this project.
+
+Here are some ways *you* can contribute:
+
+* by using prerelease versions
+* by reporting [bugs][2]
+* by suggesting new features
+* by writing or editing documentation
+* by writing specifications
+* by writing code (*no patch is too small*: fix typos, add comments, clean up inconsistent whitespace)
+* by refactoring code
+* by resolving [issues][2]
+* by reviewing patches
+
+Starting point:
+
+* Fork the repo
+* Clone your repo
+* Run `bundle install`
+* Run `bundle exec rake test_app` to create the test application in `spec/dummy`
+* Make your changes
+* Ensure specs pass by running `bundle exec rspec spec`
+* Submit your pull request
+
+Copyright (c) 2019 Solidus Commerce and contributors, released under the [New BSD License][3]
[1]: http://www.fsf.org/licensing/essays/free-sw.html
-[2]: https://github.com/spree/better_spree_paypal_express/issues
-[3]: https://github.com/spree/better_spree_paypal_express/tree/master/LICENSE.md
-[4]: https://github.com/spree/spree_paypal_express
+[2]: https://github.com/adnotam/solidus_paypal_express/issues
+[3]: https://github.com/adnotam/solidus_paypal_express/tree/master/LICENSE.md
+[4]: https://github.com/spree-contrib/better_spree_paypal_express
diff --git a/Rakefile b/Rakefile
index 4fb094f..f564298 100644
--- a/Rakefile
+++ b/Rakefile
@@ -22,7 +22,6 @@ end
desc 'Generates a dummy app for testing'
task :test_app do
- ENV['LIB_NAME'] = 'spree_paypal_express'
+ ENV['LIB_NAME'] = 'solidus_paypal_express'
Rake::Task['extension:test_app'].invoke
end
-
diff --git a/app/assets/javascripts/spree/backend/spree_paypal_express.js b/app/assets/javascripts/spree/backend/solidus_paypal_express.js
similarity index 70%
rename from app/assets/javascripts/spree/backend/spree_paypal_express.js
rename to app/assets/javascripts/spree/backend/solidus_paypal_express.js
index 28eecd9..c850c8d 100644
--- a/app/assets/javascripts/spree/backend/spree_paypal_express.js
+++ b/app/assets/javascripts/spree/backend/solidus_paypal_express.js
@@ -1,13 +1,13 @@
//= require spree/backend
-SpreePaypalExpress = {
+SolidusPaypalExpress = {
hideSettings: function(paymentMethod) {
- if (SpreePaypalExpress.paymentMethodID && paymentMethod.val() == SpreePaypalExpress.paymentMethodID) {
+ if (SolidusPaypalExpress.paymentMethodID && paymentMethod.val() == SolidusPaypalExpress.paymentMethodID) {
$('.payment-method-settings').children().hide();
$('#payment_amount').prop('disabled', 'disabled');
$('button[type="submit"]').prop('disabled', 'disabled');
$('#paypal-warning').show();
- } else if (SpreePaypalExpress.paymentMethodID) {
+ } else if (SolidusPaypalExpress.paymentMethodID) {
$('.payment-method-settings').children().show();
$('button[type=submit]').prop('disabled', '');
$('#payment_amount').prop('disabled', '')
@@ -18,8 +18,8 @@ SpreePaypalExpress = {
$(document).ready(function() {
checkedPaymentMethod = $('[data-hook="payment_method_field"] input[type="radio"]:checked');
- SpreePaypalExpress.hideSettings(checkedPaymentMethod);
+ SolidusPaypalExpress.hideSettings(checkedPaymentMethod);
paymentMethods = $('[data-hook="payment_method_field"] input[type="radio"]').click(function (e) {
- SpreePaypalExpress.hideSettings($(e.target));
+ SolidusPaypalExpress.hideSettings($(e.target));
});
})
diff --git a/app/assets/javascripts/spree/frontend/spree_paypal_express.js b/app/assets/javascripts/spree/frontend/solidus_paypal_express.js
similarity index 73%
rename from app/assets/javascripts/spree/frontend/spree_paypal_express.js
rename to app/assets/javascripts/spree/frontend/solidus_paypal_express.js
index 09c80d8..87ed8d1 100644
--- a/app/assets/javascripts/spree/frontend/spree_paypal_express.js
+++ b/app/assets/javascripts/spree/frontend/solidus_paypal_express.js
@@ -1,6 +1,6 @@
//= require spree/frontend
-SpreePaypalExpress = {
+SolidusPaypalExpress = {
updateSaveAndContinueVisibility: function() {
if (this.isButtonHidden()) {
$(this).trigger('hideSaveAndContinue')
@@ -10,7 +10,7 @@ SpreePaypalExpress = {
},
isButtonHidden: function () {
paymentMethod = this.checkedPaymentMethod();
- return (!$('#use_existing_card_yes:checked').length && SpreePaypalExpress.paymentMethodID && paymentMethod.val() == SpreePaypalExpress.paymentMethodID);
+ return (!$('#use_existing_card_yes:checked').length && SolidusPaypalExpress.paymentMethodID && paymentMethod.val() == SolidusPaypalExpress.paymentMethodID);
},
checkedPaymentMethod: function() {
return $('div[data-hook="checkout_payment_step"] input[type="radio"][name="order[payments_attributes][][payment_method_id]"]:checked');
@@ -24,8 +24,8 @@ SpreePaypalExpress = {
}
$(document).ready(function() {
- SpreePaypalExpress.updateSaveAndContinueVisibility();
+ SolidusPaypalExpress.updateSaveAndContinueVisibility();
paymentMethods = $('div[data-hook="checkout_payment_step"] input[type="radio"]').click(function (e) {
- SpreePaypalExpress.updateSaveAndContinueVisibility();
+ SolidusPaypalExpress.updateSaveAndContinueVisibility();
});
})
diff --git a/app/assets/stylesheets/spree/backend/spree_paypal_express.css b/app/assets/stylesheets/spree/backend/solidus_paypal_express.css
similarity index 100%
rename from app/assets/stylesheets/spree/backend/spree_paypal_express.css
rename to app/assets/stylesheets/spree/backend/solidus_paypal_express.css
diff --git a/app/assets/stylesheets/spree/frontend/spree_paypal_express.css b/app/assets/stylesheets/spree/frontend/solidus_paypal_express.css
similarity index 100%
rename from app/assets/stylesheets/spree/frontend/spree_paypal_express.css
rename to app/assets/stylesheets/spree/frontend/solidus_paypal_express.css
diff --git a/app/controllers/spree/paypal_controller.rb b/app/controllers/spree/paypal_controller.rb
index 5d26c7a..3d3db8b 100644
--- a/app/controllers/spree/paypal_controller.rb
+++ b/app/controllers/spree/paypal_controller.rb
@@ -120,7 +120,7 @@ def gateway
def payment_details items
# This retrieves the cost of shipping after promotions are applied
# For example, if shippng costs $10, and is free with a promotion, shipment_sum is now $10
- shipment_sum = current_order.shipments.map(&:final_amount_without_additional_tax).sum
+ shipment_sum = current_order.shipments.sum(&:total_before_tax)
# This calculates the item sum based upon what is in the order total, but not for shipping
# or tax. This is the easiest way to determine what the items should cost, as that
diff --git a/app/models/spree/gateway/pay_pal_express.rb b/app/models/spree/gateway/pay_pal_express.rb
index 778eee8..ff0baf2 100644
--- a/app/models/spree/gateway/pay_pal_express.rb
+++ b/app/models/spree/gateway/pay_pal_express.rb
@@ -23,7 +23,12 @@ def gateway
mode: preferred_server.present? ? preferred_server : "sandbox",
username: preferred_login,
password: preferred_password,
- signature: preferred_signature)
+ signature: preferred_signature,
+
+ # Deliberately set ca_file to nil so the system's Cert Authority is used,
+ # instead of the bundled paypal.crt file which is out-of-date due to:
+ # https://www.paypal.com/va/smarthelp/article/discontinue-use-of-verisign-g5-root-certificates-ts2240
+ ssl_options: { ca_file: nil })
gateway_class.new
end
diff --git a/app/views/spree/admin/payments/source_forms/_paypal.html.erb b/app/views/spree/admin/payments/source_forms/_paypal.html.erb
index 8634e65..06f789a 100644
--- a/app/views/spree/admin/payments/source_forms/_paypal.html.erb
+++ b/app/views/spree/admin/payments/source_forms/_paypal.html.erb
@@ -2,5 +2,5 @@
<%= Spree.t('no_payment_via_admin_backend', :scope => 'paypal') %>
\ No newline at end of file
+ SolidusPaypalExpress.paymentMethodID = "<%= payment_method.id %>"
+
diff --git a/app/views/spree/api/payments/source_views/_paypal.json.jbuilder b/app/views/spree/api/payments/source_views/_paypal.json.jbuilder
new file mode 100644
index 0000000..4816b81
--- /dev/null
+++ b/app/views/spree/api/payments/source_views/_paypal.json.jbuilder
@@ -0,0 +1,3 @@
+# frozen_string_literal: true
+
+json.call(payment_source, :id, :token, :created_at)
diff --git a/app/views/spree/checkout/payment/_paypal.html.erb b/app/views/spree/checkout/payment/_paypal.html.erb
index f01452e..8a1082a 100644
--- a/app/views/spree/checkout/payment/_paypal.html.erb
+++ b/app/views/spree/checkout/payment/_paypal.html.erb
@@ -1,6 +1,5 @@
-
<%= link_to(image_tag("https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif"), paypal_express_url(:payment_method_id => payment_method.id), :method => :post, :id => "paypal_button") %>
\ No newline at end of file
+ SolidusPaypalExpress.paymentMethodID = "<%= payment_method.id %>"
+
diff --git a/config/locales/en.yml b/config/locales/en.yml
index e072284..9ff1260 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1,6 +1,8 @@
---
en:
spree:
+ landing_page: Landing Page
+ logourl: Logo Url
paypal:
already_refunded: "This payment has been refunded and no further action can be taken on it."
no_payment_via_admin_backend: "You cannot charge PayPal accounts through the admin backend at this time."
@@ -18,4 +20,7 @@ en:
flash:
cancel: "Don't want to use PayPal? No problems."
connection_failed: "Could not connect to PayPal."
- generic_error: "PayPal failed. %{reasons}"
\ No newline at end of file
+ generic_error: "PayPal failed. %{reasons}"
+ signature: Signature
+ solution: Solution
+ use_new_layout: Use new layout
diff --git a/lib/generators/spree_paypal_express/install/install_generator.rb b/lib/generators/solidus_paypal_express/install/install_generator.rb
similarity index 79%
rename from lib/generators/spree_paypal_express/install/install_generator.rb
rename to lib/generators/solidus_paypal_express/install/install_generator.rb
index 0cfd88e..fdc5bf4 100644
--- a/lib/generators/spree_paypal_express/install/install_generator.rb
+++ b/lib/generators/solidus_paypal_express/install/install_generator.rb
@@ -1,12 +1,12 @@
-module SpreePaypalExpress
+module SolidusPaypalExpress
module Generators
class InstallGenerator < Rails::Generators::Base
class_option :auto_run_migrations, type: :boolean, default: false
def add_javascripts
- append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_paypal_express\n"
- append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/spree_paypal_express\n"
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/solidus_paypal_express\n"
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/solidus_paypal_express\n"
end
def add_stylesheets
@@ -14,13 +14,13 @@ def add_stylesheets
backend_css_file = "vendor/assets/stylesheets/spree/backend/all.css"
if File.exist?(backend_css_file) && File.exist?(frontend_css_file)
- inject_into_file frontend_css_file, " *= require spree/frontend/spree_paypal_express\n", before: /\*\//, verbose: true
- inject_into_file backend_css_file, " *= require spree/backend/spree_paypal_express\n", before: /\*\//, verbose: true
+ inject_into_file frontend_css_file, " *= require spree/frontend/solidus_paypal_express\n", before: /\*\//, verbose: true
+ inject_into_file backend_css_file, " *= require spree/backend/solidus_paypal_express\n", before: /\*\//, verbose: true
end
end
def add_migrations
- run 'bundle exec rake railties:install:migrations FROM=spree_paypal_express'
+ run 'bundle exec rake railties:install:migrations FROM=solidus_paypal_express'
end
def run_migrations
diff --git a/lib/solidus_paypal_express.rb b/lib/solidus_paypal_express.rb
new file mode 100644
index 0000000..456d242
--- /dev/null
+++ b/lib/solidus_paypal_express.rb
@@ -0,0 +1,4 @@
+require 'solidus_core'
+require 'solidus_paypal_express/version'
+require 'solidus_paypal_express/engine'
+require 'sass/rails'
diff --git a/lib/spree_paypal_express/engine.rb b/lib/solidus_paypal_express/engine.rb
similarity index 96%
rename from lib/spree_paypal_express/engine.rb
rename to lib/solidus_paypal_express/engine.rb
index 9801550..81c7c55 100644
--- a/lib/spree_paypal_express/engine.rb
+++ b/lib/solidus_paypal_express/engine.rb
@@ -1,4 +1,4 @@
-module SpreePaypalExpress
+module SolidusPaypalExpress
class Engine < Rails::Engine
require 'spree/core'
isolate_namespace Spree
diff --git a/lib/spree_paypal_express/factories.rb b/lib/solidus_paypal_express/factories.rb
similarity index 83%
rename from lib/spree_paypal_express/factories.rb
rename to lib/solidus_paypal_express/factories.rb
index d22ad3a..d2738b6 100644
--- a/lib/spree_paypal_express/factories.rb
+++ b/lib/solidus_paypal_express/factories.rb
@@ -2,5 +2,5 @@
# Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
#
# Example adding this to your spec_helper will load these Factories for use:
- # require 'spree_paypal_express/factories'
+ # require 'solidus_paypal_express/factories'
end
diff --git a/lib/solidus_paypal_express/version.rb b/lib/solidus_paypal_express/version.rb
new file mode 100644
index 0000000..611c71f
--- /dev/null
+++ b/lib/solidus_paypal_express/version.rb
@@ -0,0 +1,3 @@
+module SolidusPayPalExpress
+ VERSION = '2.0.0'
+end
diff --git a/lib/spree_paypal_express.rb b/lib/spree_paypal_express.rb
deleted file mode 100644
index e04a87c..0000000
--- a/lib/spree_paypal_express.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-require 'spree_core'
-require 'spree_paypal_express/version'
-require 'spree_paypal_express/engine'
-require 'sass/rails'
diff --git a/lib/spree_paypal_express/version.rb b/lib/spree_paypal_express/version.rb
deleted file mode 100644
index d5d5f00..0000000
--- a/lib/spree_paypal_express/version.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-module SpreePayPalExpress
- VERSION = '2.0.3'
-end
\ No newline at end of file
diff --git a/spree_paypal_express.gemspec b/solidus_paypal_express.gemspec
similarity index 81%
rename from spree_paypal_express.gemspec
rename to solidus_paypal_express.gemspec
index dd75390..afb26c9 100644
--- a/spree_paypal_express.gemspec
+++ b/solidus_paypal_express.gemspec
@@ -2,19 +2,19 @@
lib = File.expand_path('../lib/', __FILE__)
$:.unshift lib unless $:.include?(lib)
-require 'spree_paypal_express/version'
+require 'solidus_paypal_express/version'
Gem::Specification.new do |s|
s.platform = Gem::Platform::RUBY
- s.name = 'spree_paypal_express'
- s.version = SpreePayPalExpress::VERSION
- s.summary = 'Adds PayPal Express as a Payment Method to Spree Commerce'
+ s.name = 'solidus_paypal_express'
+ s.version = SolidusPayPalExpress::VERSION
+ s.summary = 'Adds PayPal Express as a Payment Method to Solidus Commerce'
s.description = s.summary
s.required_ruby_version = '>= 1.9.3'
- s.author = 'Spree Commerce'
- s.email = 'gems@spreecommerce.com'
- s.homepage = 'http://www.spreecommerce.com'
+ s.author = 'Solidus Commerce'
+ s.email = 'info@solidus.io'
+ s.homepage = 'https://www.solidus.io'
s.license = %q{BSD-3}
s.files = `git ls-files`.split("\n")
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 55ae406..2d35dec 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -51,8 +51,7 @@
require 'spree/testing_support/controller_requests'
require 'spree/testing_support/authorization_helpers'
require 'spree/testing_support/url_helpers'
-
-require 'spree_paypal_express/factories'
+require 'solidus_paypal_express/factories'
FactoryBot.find_definitions
RSpec.configure do |config|