diff --git a/.travis.yml b/.travis.yml index 92e8bcda1..6d24ba65f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ script: addons: chrome: stable + postgresql: 9.4 env: - DB=mysql @@ -23,16 +24,27 @@ gemfile: - gemfiles/spree_3_2.gemfile - gemfiles/spree_3_5.gemfile - gemfiles/spree_3_7.gemfile + - gemfiles/spree_4_0.gemfile - gemfiles/spree_master.gemfile matrix: allow_failures: - gemfile: gemfiles/spree_master.gemfile exclude: - - rvm: 2.3.7 - gemfile: gemfiles/spree_master.gemfile - - rvm: 2.4.4 - gemfile: gemfiles/spree_master.gemfile + - rvm: 2.3.7 + gemfile: gemfiles/spree_4_0.gemfile + - rvm: 2.4.4 + gemfile: gemfiles/spree_4_0.gemfile + - rvm: 2.3.7 + gemfile: gemfiles/spree_master.gemfile + - rvm: 2.4.4 + gemfile: gemfiles/spree_master.gemfile + - rvm: 2.5.1 + gemfile: gemfiles/spree_3_2.gemfile + - rvm: 2.5.1 + gemfile: gemfiles/spree_3_2.gemfile + - rvm: 2.5.1 + gemfile: gemfiles/spree_3_5.gemfile before_install: - mysql -u root -e "GRANT ALL ON *.* TO 'travis'@'%';" diff --git a/Appraisals b/Appraisals index f78972844..c79d6c5ff 100644 --- a/Appraisals +++ b/Appraisals @@ -9,10 +9,16 @@ appraise 'spree-3-5' do end appraise 'spree-3-7' do + gem 'sass-rails' gem 'spree', '~> 3.7.0.rc3' gem 'rails-controller-testing' end +appraise 'spree-4-0' do + gem 'spree', github: 'spree/spree', tag: 'v4.0.0.beta' + gem 'rails-controller-testing' +end + appraise 'spree-master' do gem 'spree', github: 'spree/spree', branch: 'master' gem 'rails-controller-testing' diff --git a/config/locales/en.yml b/config/locales/en.yml index 5497f82d1..a42a94b9d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -41,6 +41,7 @@ en: user_registrations: destroyed: Bye! Your account was successfully cancelled. We hope to see you again soon. inactive_signed_up: 'You have signed up successfully. However, we could not sign you in because your account is %{reason}.' + signed_up_but_unconfirmed: You have signed up successfully. signed_up: Welcome! You have signed up successfully. updated: You updated your account successfully. user_sessions: diff --git a/gemfiles/spree_3_7.gemfile b/gemfiles/spree_3_7.gemfile index 168d586aa..746d9979d 100644 --- a/gemfiles/spree_3_7.gemfile +++ b/gemfiles/spree_3_7.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "rails-controller-testing" gem "spree", "~> 3.7.0.rc3" +gem "sass-rails" gemspec path: "../" diff --git a/gemfiles/spree_4_0.gemfile b/gemfiles/spree_4_0.gemfile new file mode 100644 index 000000000..88447dd28 --- /dev/null +++ b/gemfiles/spree_4_0.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails-controller-testing" +gem "spree", github: "spree/spree", tag: "v4.0.0.beta" + +gemspec path: "../" diff --git a/lib/controllers/backend/spree/admin/admin_resource_controller_decorator.rb b/lib/controllers/backend/spree/admin/admin_resource_controller_decorator.rb deleted file mode 100644 index aa90216cc..000000000 --- a/lib/controllers/backend/spree/admin/admin_resource_controller_decorator.rb +++ /dev/null @@ -1,3 +0,0 @@ -Spree::Admin::ResourceController.class_eval do - rescue_from CanCan::AccessDenied, with: :unauthorized -end diff --git a/lib/controllers/backend/spree/admin/admin_controller_decorator.rb b/lib/controllers/backend/spree/admin/base_controller_decorator.rb similarity index 86% rename from lib/controllers/backend/spree/admin/admin_controller_decorator.rb rename to lib/controllers/backend/spree/admin/base_controller_decorator.rb index d9a72ea3f..c69c433fb 100644 --- a/lib/controllers/backend/spree/admin/admin_controller_decorator.rb +++ b/lib/controllers/backend/spree/admin/base_controller_decorator.rb @@ -1,4 +1,4 @@ -Spree::Admin::BaseController.class_eval do +module Spree::Admin::BaseControllerDecorator # Redirect as appropriate when an access request fails. The default action is to redirect to the login screen. # Override this method in your controllers if you want to have special behavior in case the user is not authorized # to access the requested action. For example, a popup window might simply close itself. @@ -22,3 +22,4 @@ def model_class nil end end +Spree::Admin::BaseController.prepend(Spree::Admin::BaseControllerDecorator) diff --git a/lib/controllers/backend/spree/admin/orders/customer_details_controller_decorator.rb b/lib/controllers/backend/spree/admin/orders/customer_details_controller_decorator.rb index 9caef0641..ca6876149 100644 --- a/lib/controllers/backend/spree/admin/orders/customer_details_controller_decorator.rb +++ b/lib/controllers/backend/spree/admin/orders/customer_details_controller_decorator.rb @@ -1,5 +1,8 @@ -Spree::Admin::Orders::CustomerDetailsController.class_eval do - before_action :check_authorization +module Spree::Admin::Orders::CustomerDetailsControllerDecorator + + def self.prepended(base) + base.before_action :check_authorization + end private @@ -14,3 +17,4 @@ def check_authorization authorize! action, resource, session[:access_token] end end +Spree::Admin::Orders::CustomerDetailsController.prepend(Spree::Admin::Orders::CustomerDetailsControllerDecorator) diff --git a/lib/controllers/backend/spree/admin/admin_orders_controller_decorator.rb b/lib/controllers/backend/spree/admin/orders_controller_decorator.rb similarity index 70% rename from lib/controllers/backend/spree/admin/admin_orders_controller_decorator.rb rename to lib/controllers/backend/spree/admin/orders_controller_decorator.rb index e938b77d6..989627c4c 100644 --- a/lib/controllers/backend/spree/admin/admin_orders_controller_decorator.rb +++ b/lib/controllers/backend/spree/admin/orders_controller_decorator.rb @@ -1,5 +1,8 @@ -Spree::Admin::OrdersController.class_eval do - before_action :check_authorization +module Spree::Admin::OrdersControllerDecorator + + def self.prepended(base) + base.before_action :check_authorization + end private @@ -19,3 +22,4 @@ def check_authorization end end end +Spree::Admin::OrdersController.prepend(Spree::Admin::OrdersControllerDecorator) diff --git a/lib/controllers/backend/spree/admin/resource_controller_decorator.rb b/lib/controllers/backend/spree/admin/resource_controller_decorator.rb new file mode 100644 index 000000000..839129f32 --- /dev/null +++ b/lib/controllers/backend/spree/admin/resource_controller_decorator.rb @@ -0,0 +1,6 @@ +module Spree::Admin::ResourceControllerDecorator + def self.prepended(base) + base.rescue_from CanCan::AccessDenied, with: :unauthorized + end +end +Spree::Admin::ResourceController.prepend(Spree::Admin::ResourceControllerDecorator) diff --git a/lib/controllers/frontend/spree/checkout_controller_decorator.rb b/lib/controllers/frontend/spree/checkout_controller_decorator.rb index 17d69ffae..8a56d60bd 100644 --- a/lib/controllers/frontend/spree/checkout_controller_decorator.rb +++ b/lib/controllers/frontend/spree/checkout_controller_decorator.rb @@ -1,7 +1,9 @@ require 'spree/core/validators/email' if Spree.version.to_f < 3.5 -Spree::CheckoutController.class_eval do - before_action :check_authorization - before_action :check_registration, except: [:registration, :update_registration] +module Spree::CheckoutControllerDecorator + def self.prepended(base) + base.before_action :check_authorization + base.before_action :check_registration, except: [:registration, :update_registration] + end def registration @user = Spree::User.new @@ -39,3 +41,4 @@ def check_registration redirect_to spree.checkout_registration_path end end +Spree::CheckoutController.prepend(Spree::CheckoutControllerDecorator) diff --git a/lib/controllers/frontend/spree/store_controller_decorator.rb b/lib/controllers/frontend/spree/store_controller_decorator.rb index 9bbc1752b..4de98ab13 100644 --- a/lib/controllers/frontend/spree/store_controller_decorator.rb +++ b/lib/controllers/frontend/spree/store_controller_decorator.rb @@ -1,6 +1,7 @@ -Spree::StoreController.class_eval do +module Spree::StoreControllerDecorator def account_link render partial: 'spree/shared/link_to_account' fresh_when(spree_current_user) end end +Spree::StoreController.prepend(Spree::StoreControllerDecorator) diff --git a/spec/features/checkout_spec.rb b/spec/features/checkout_spec.rb index 9a671fb54..1156687fe 100644 --- a/spec/features/checkout_spec.rb +++ b/spec/features/checkout_spec.rb @@ -133,11 +133,10 @@ expect(page).to have_text 'Registration' - fill_in 'Email', with: 'email@person.com' + fill_in 'Email', with: 'email@person.com', match: :first fill_in 'Password', with: 'spree123' fill_in 'Password Confirmation', with: 'spree123' click_button 'Create' - expect(page).to have_text 'You have signed up successfully.' str_addr = 'bill_address' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 5e5d5d586..9258f0c47 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -22,6 +22,12 @@ config.order = :random Kernel.srand(config.seed) + + config.before(:each) do + allow(RSpec::Rails::ViewRendering::EmptyTemplateHandler) + .to receive(:call) + .and_return(%("")) if Rails.gem_version >= Gem::Version.new('6.0.0.beta1') + end end Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f } diff --git a/spree_auth_devise.gemspec b/spree_auth_devise.gemspec index 1e86da6fc..f7d35eacb 100644 --- a/spree_auth_devise.gemspec +++ b/spree_auth_devise.gemspec @@ -3,7 +3,7 @@ Gem::Specification.new do |s| s.platform = Gem::Platform::RUBY s.name = 'spree_auth_devise' - s.version = '4.0.0.beta' + s.version = '4.0.0.rc1' s.summary = 'Provides authentication and authorization services for use with Spree by using Devise and CanCan.' s.description = s.summary @@ -19,7 +19,7 @@ Gem::Specification.new do |s| s.require_path = 'lib' s.requirements << 'none' - s.add_dependency 'devise', '>= 4.4', '< 4.7' + s.add_dependency 'devise', '~> 4.7' s.add_dependency 'devise-encryptable', '0.2.0' spree_version = '>= 3.1.0', '< 5.0'