solidus_auth_devise 1.3.0 → 1.4.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.
Potentially problematic release.
This version of solidus_auth_devise might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +13 -8
- data/Gemfile +5 -1
- data/README.md +1 -7
- data/app/models/spree/user.rb +1 -1
- data/config/initializers/devise.rb +1 -0
- data/config/initializers/warden.rb +1 -1
- data/config/routes.rb +49 -39
- data/lib/controllers/frontend/spree/checkout_controller_decorator.rb +18 -4
- data/lib/controllers/frontend/spree/user_registrations_controller.rb +0 -1
- data/solidus_auth_devise.gemspec +2 -2
- data/spec/controllers/spree/checkout_controller_spec.rb +25 -1
- data/spec/controllers/spree/user_registrations_controller_spec.rb +30 -5
- data/spec/controllers/spree/user_sessions_controller_spec.rb +45 -8
- data/spec/features/admin/orders_spec.rb +1 -0
- metadata +9 -11
- data/spec/features/admin/payment_methods_spec.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 069e3cf3d0b487a02fd0cd8f90229d91d21ee49c
|
4
|
+
data.tar.gz: 8c03169fd0298d4ddeeb75b82974fffcd97faf5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4cfbbb456e6a83241eb691cf1fa639bf30a8803ceb2a24cf2f18b7f36cd091ee20b16eb44cfe38c2e059afbe0f53ac23c0580b906f12265ca597845ce5b546a
|
7
|
+
data.tar.gz: f4caa243ed037ab7dfe34e629c36b43a5e0cce9d2b6ecc82d353917bd1e5389a0b1a42fc9c92ac5a95ab22481313a206559f39d559aecde8927e9a158b4c6734
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,11 +1,16 @@
|
|
1
|
+
sudo: false
|
1
2
|
language: ruby
|
2
3
|
rvm:
|
3
|
-
- 1.
|
4
|
-
- 2.1.3
|
4
|
+
- 2.1.8
|
5
5
|
env:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
matrix:
|
7
|
+
- SOLIDUS_BRANCH=v1.0 DB=postgres
|
8
|
+
- SOLIDUS_BRANCH=v1.1 DB=postgres
|
9
|
+
- SOLIDUS_BRANCH=v1.2 DB=postgres
|
10
|
+
- SOLIDUS_BRANCH=v1.3 DB=postgres
|
11
|
+
- SOLIDUS_BRANCH=master DB=postgres
|
12
|
+
- SOLIDUS_BRANCH=v1.0 DB=mysql
|
13
|
+
- SOLIDUS_BRANCH=v1.1 DB=mysql
|
14
|
+
- SOLIDUS_BRANCH=v1.2 DB=mysql
|
15
|
+
- SOLIDUS_BRANCH=v1.3 DB=mysql
|
16
|
+
- SOLIDUS_BRANCH=master DB=mysql
|
data/Gemfile
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
|
-
|
3
|
+
branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
|
4
|
+
gem "solidus", github: "solidusio/solidus", branch: branch
|
5
|
+
|
6
|
+
gem 'pg'
|
7
|
+
gem 'mysql2'
|
4
8
|
|
5
9
|
group :development, :test do
|
6
10
|
gem "pry-rails"
|
data/README.md
CHANGED
@@ -71,13 +71,7 @@ Inside of your host application you can then use CanCan like you normally would.
|
|
71
71
|
Testing
|
72
72
|
-------
|
73
73
|
|
74
|
-
|
75
|
-
|
76
|
-
```shell
|
77
|
-
bundle config local.spree /path/to/local/solidus/repository
|
78
|
-
```
|
79
|
-
|
80
|
-
Then just run the following to automatically build a dummy app if necessary and run the tests:
|
74
|
+
Run the following to automatically build a dummy app if necessary and run the tests:
|
81
75
|
|
82
76
|
```shell
|
83
77
|
bundle exec rake
|
data/app/models/spree/user.rb
CHANGED
@@ -3,7 +3,7 @@ module Spree
|
|
3
3
|
include UserMethods
|
4
4
|
|
5
5
|
devise :database_authenticatable, :registerable, :recoverable,
|
6
|
-
:rememberable, :trackable, :validatable, :encryptable
|
6
|
+
:rememberable, :trackable, :validatable, :encryptable
|
7
7
|
devise :confirmable if Spree::Auth::Config[:confirmable]
|
8
8
|
|
9
9
|
acts_as_paranoid
|
@@ -38,6 +38,7 @@ Devise.setup do |config|
|
|
38
38
|
# For bcrypt, this is the cost for hashing the password and defaults to 10. If
|
39
39
|
# using other encryptors, it sets how many times you want the password re-encrypted.
|
40
40
|
config.stretches = 20
|
41
|
+
config.encryptor = 'authlogic_sha512'
|
41
42
|
|
42
43
|
# Setup a pepper to generate the encrypted password.
|
43
44
|
config.pepper = Rails.configuration.secret_token
|
@@ -2,7 +2,7 @@
|
|
2
2
|
Warden::Manager.after_set_user except: :fetch do |user, auth, opts|
|
3
3
|
if auth.cookies.signed[:guest_token].present?
|
4
4
|
if user.is_a?(Spree::User)
|
5
|
-
Spree::Order.where(guest_token: auth.cookies.signed[:guest_token], user_id: nil).each do |order|
|
5
|
+
Spree::Order.incomplete.where(guest_token: auth.cookies.signed[:guest_token], user_id: nil).each do |order|
|
6
6
|
order.associate_user!(user)
|
7
7
|
end
|
8
8
|
end
|
data/config/routes.rb
CHANGED
@@ -1,48 +1,58 @@
|
|
1
1
|
Spree::Core::Engine.add_routes do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
2
|
+
if Spree::Auth::Engine.frontend_available?
|
3
|
+
devise_for(:spree_user, {
|
4
|
+
class_name: 'Spree::User',
|
5
|
+
controllers: {
|
6
|
+
sessions: 'spree/user_sessions',
|
7
|
+
registrations: 'spree/user_registrations',
|
8
|
+
passwords: 'spree/user_passwords',
|
9
|
+
confirmations: 'spree/user_confirmations'
|
10
|
+
},
|
11
|
+
skip: [:unlocks, :omniauth_callbacks],
|
12
|
+
path_names: { sign_out: 'logout' },
|
13
|
+
path_prefix: :user
|
14
|
+
})
|
11
15
|
|
12
|
-
|
16
|
+
resources :users, only: [:edit, :update]
|
13
17
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
18
|
+
devise_scope :spree_user do
|
19
|
+
get '/login', to: 'user_sessions#new', as: :login
|
20
|
+
post '/login', to: 'user_sessions#create', as: :create_new_session
|
21
|
+
get '/logout', to: 'user_sessions#destroy', as: :logout
|
22
|
+
get '/signup', to: 'user_registrations#new', as: :signup
|
23
|
+
post '/signup', to: 'user_registrations#create', as: :registration
|
24
|
+
get '/password/recover', to: 'user_passwords#new', as: :recover_password
|
25
|
+
post '/password/recover', to: 'user_passwords#create', as: :reset_password
|
26
|
+
get '/password/change', to: 'user_passwords#edit', as: :edit_password
|
27
|
+
put '/password/change', to: 'user_passwords#update', as: :update_password
|
28
|
+
get '/confirm', to: 'user_confirmations#show', as: :confirmation if Spree::Auth::Config[:confirmable]
|
29
|
+
end
|
26
30
|
|
27
|
-
|
28
|
-
|
31
|
+
get '/checkout/registration', to: 'checkout#registration', as: :checkout_registration
|
32
|
+
put '/checkout/registration', to: 'checkout#update_registration', as: :update_checkout_registration
|
29
33
|
|
30
|
-
|
34
|
+
resource :account, controller: 'users'
|
35
|
+
end
|
31
36
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
get '/logout' => 'user_sessions#destroy', :as => :logout
|
45
|
-
end
|
37
|
+
if Spree::Auth::Engine.backend_available?
|
38
|
+
namespace :admin do
|
39
|
+
devise_for(:spree_user, {
|
40
|
+
class_name: 'Spree::User',
|
41
|
+
controllers: {
|
42
|
+
sessions: 'spree/admin/user_sessions',
|
43
|
+
passwords: 'spree/admin/user_passwords'
|
44
|
+
},
|
45
|
+
skip: [:unlocks, :omniauth_callbacks, :registrations],
|
46
|
+
path_names: { sign_out: 'logout' },
|
47
|
+
path_prefix: :user
|
48
|
+
})
|
46
49
|
|
50
|
+
devise_scope :spree_user do
|
51
|
+
get '/authorization_failure', to: 'user_sessions#authorization_failure', as: :unauthorized
|
52
|
+
get '/login', to: 'user_sessions#new', as: :login
|
53
|
+
post '/login', to: 'user_sessions#create', as: :create_new_session
|
54
|
+
get '/logout', to: 'user_sessions#destroy', as: :logout
|
55
|
+
end
|
56
|
+
end
|
47
57
|
end
|
48
58
|
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'spree/core/validators/email'
|
2
2
|
Spree::CheckoutController.class_eval do
|
3
|
-
|
4
|
-
|
3
|
+
prepend_before_filter :check_registration,
|
4
|
+
except: [:registration, :update_registration]
|
5
|
+
prepend_before_filter :check_authorization
|
5
6
|
|
6
7
|
def registration
|
7
8
|
@user = Spree::User.new
|
@@ -32,12 +33,25 @@ Spree::CheckoutController.class_eval do
|
|
32
33
|
|
33
34
|
# Introduces a registration step whenever the +registration_step+ preference is true.
|
34
35
|
def check_registration
|
35
|
-
return unless
|
36
|
-
return if spree_current_user or current_order.email
|
36
|
+
return unless registration_required?
|
37
37
|
store_location
|
38
38
|
redirect_to spree.checkout_registration_path
|
39
39
|
end
|
40
40
|
|
41
|
+
def registration_required?
|
42
|
+
Spree::Auth::Config[:registration_step] &&
|
43
|
+
!already_registered?
|
44
|
+
end
|
45
|
+
|
46
|
+
def already_registered?
|
47
|
+
spree_current_user || guest_authenticated?
|
48
|
+
end
|
49
|
+
|
50
|
+
def guest_authenticated?
|
51
|
+
current_order.try!(:email).present? &&
|
52
|
+
Spree::Config[:allow_guest_checkout]
|
53
|
+
end
|
54
|
+
|
41
55
|
# Overrides the equivalent method defined in Spree::Core. This variation of the method will ensure that users
|
42
56
|
# are redirected to the tokenized order url unless authenticated as a registered user.
|
43
57
|
def completion_route
|
@@ -19,7 +19,6 @@ class Spree::UserRegistrationsController < Devise::RegistrationsController
|
|
19
19
|
set_flash_message(:notice, :signed_up)
|
20
20
|
sign_in(:spree_user, resource)
|
21
21
|
session[:spree_user_signup] = true
|
22
|
-
associate_user
|
23
22
|
respond_with resource, location: after_sign_up_path_for(resource)
|
24
23
|
else
|
25
24
|
clean_up_passwords(resource)
|
data/solidus_auth_devise.gemspec
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.name = "solidus_auth_devise"
|
6
|
-
s.version = "1.
|
6
|
+
s.version = "1.4.0"
|
7
7
|
s.summary = "Provides authentication and authorization services for use with Solidus by using Devise and CanCan."
|
8
8
|
s.description = s.summary
|
9
9
|
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.require_path = "lib"
|
19
19
|
s.requirements << "none"
|
20
20
|
|
21
|
-
solidus_version = [">= 1.
|
21
|
+
solidus_version = [">= 1.0.6", "< 2"]
|
22
22
|
|
23
23
|
s.add_dependency "solidus_core", solidus_version
|
24
24
|
s.add_dependency "devise", '~> 3.5.1'
|
@@ -25,12 +25,36 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
context 'when authenticated as guest' do
|
28
|
+
context 'when not authenticated as guest' do
|
29
29
|
it 'redirects to registration step' do
|
30
30
|
spree_get :edit, { state: 'address' }
|
31
31
|
expect(response).to redirect_to spree.checkout_registration_path
|
32
32
|
end
|
33
33
|
end
|
34
|
+
|
35
|
+
context 'when authenticated as guest' do
|
36
|
+
before { order.email = 'guest@solidus.io' }
|
37
|
+
|
38
|
+
it 'proceeds to the first checkout step' do
|
39
|
+
spree_get :edit, { state: 'address' }
|
40
|
+
expect(response).to render_template :edit
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'when guest checkout not allowed' do
|
44
|
+
before do
|
45
|
+
Spree::Config.set(allow_guest_checkout: false)
|
46
|
+
end
|
47
|
+
|
48
|
+
after do
|
49
|
+
Spree::Config.set(allow_guest_checkout: true)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'redirects to registration step' do
|
53
|
+
spree_get :edit, { state: 'address' }
|
54
|
+
expect(response).to redirect_to spree.checkout_registration_path
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
34
58
|
end
|
35
59
|
|
36
60
|
context 'when registration step disabled' do
|
@@ -40,15 +40,40 @@ RSpec.describe Spree::UserRegistrationsController, type: :controller do
|
|
40
40
|
expect(session[:spree_user_signup]).to be true
|
41
41
|
end
|
42
42
|
|
43
|
-
it 'tries to associate user with current_order' do
|
44
|
-
expect(controller).to receive(:associate_user)
|
45
|
-
subject
|
46
|
-
end
|
47
|
-
|
48
43
|
it 'redirects to after_sign_up path' do
|
49
44
|
subject
|
50
45
|
expect(response).to redirect_to spree.root_path(thing: 7)
|
51
46
|
end
|
47
|
+
|
48
|
+
context 'with a guest token present' do
|
49
|
+
before do
|
50
|
+
request.cookie_jar.signed[:guest_token] = 'ABC'
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'assigns orders with the correct token and no user present' do
|
54
|
+
order = create(:order, guest_token: 'ABC', user_id: nil, created_by_id: nil)
|
55
|
+
subject
|
56
|
+
user = Spree::User.find_by_email('foobar@example.com')
|
57
|
+
|
58
|
+
order.reload
|
59
|
+
expect(order.user_id).to eq user.id
|
60
|
+
expect(order.created_by_id).to eq user.id
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'does not assign orders with an existing user' do
|
64
|
+
order = create(:order, guest_token: 'ABC', user_id: 200)
|
65
|
+
subject
|
66
|
+
|
67
|
+
expect(order.reload.user_id).to eq 200
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'does not assign orders with a different token' do
|
71
|
+
order = create(:order, guest_token: 'DEF', user_id: nil, created_by_id: nil)
|
72
|
+
subject
|
73
|
+
|
74
|
+
expect(order.reload.user_id).to be_nil
|
75
|
+
end
|
76
|
+
end
|
52
77
|
end
|
53
78
|
|
54
79
|
context 'when user not valid' do
|
@@ -17,16 +17,53 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
context "when using correct login information" do
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
context 'with a guest token present' do
|
21
|
+
before do
|
22
|
+
request.cookie_jar.signed[:guest_token] = 'ABC'
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'assigns orders with the correct token and no user present' do
|
26
|
+
order = create(:order, email: user.email, guest_token: 'ABC', user_id: nil, created_by_id: nil)
|
27
|
+
subject
|
28
|
+
|
29
|
+
order.reload
|
30
|
+
expect(order.user_id).to eq user.id
|
31
|
+
expect(order.created_by_id).to eq user.id
|
32
|
+
end
|
24
33
|
|
25
|
-
|
34
|
+
it 'assigns orders with the correct token and no user or email present' do
|
35
|
+
order = create(:order, guest_token: 'ABC', user_id: nil, created_by_id: nil)
|
36
|
+
subject
|
37
|
+
|
38
|
+
order.reload
|
39
|
+
expect(order.user_id).to eq user.id
|
40
|
+
expect(order.created_by_id).to eq user.id
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'does not assign completed orders' do
|
44
|
+
order = create(:order, email: user.email, guest_token: 'ABC',
|
45
|
+
user_id: nil, created_by_id: nil,
|
46
|
+
completed_at: 1.minute.ago)
|
47
|
+
subject
|
26
48
|
|
27
|
-
|
28
|
-
|
29
|
-
|
49
|
+
order.reload
|
50
|
+
expect(order.user_id).to be_nil
|
51
|
+
expect(order.created_by_id).to be_nil
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'does not assign orders with an existing user' do
|
55
|
+
order = create(:order, guest_token: 'ABC', user_id: 200)
|
56
|
+
subject
|
57
|
+
|
58
|
+
expect(order.reload.user_id).to eq 200
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'does not assign orders with a different token' do
|
62
|
+
order = create(:order, guest_token: 'DEF', user_id: nil, created_by_id: nil)
|
63
|
+
subject
|
64
|
+
|
65
|
+
expect(order.reload.user_id).to be_nil
|
66
|
+
end
|
30
67
|
end
|
31
68
|
|
32
69
|
context "when html format is requested" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_auth_devise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.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: 2016-
|
11
|
+
date: 2016-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_core
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.0.6
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '2'
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.
|
29
|
+
version: 1.0.6
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '2'
|
@@ -106,7 +106,7 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.
|
109
|
+
version: 1.0.6
|
110
110
|
- - "<"
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: '2'
|
@@ -116,7 +116,7 @@ dependencies:
|
|
116
116
|
requirements:
|
117
117
|
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: 1.
|
119
|
+
version: 1.0.6
|
120
120
|
- - "<"
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '2'
|
@@ -126,7 +126,7 @@ dependencies:
|
|
126
126
|
requirements:
|
127
127
|
- - ">="
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: 1.
|
129
|
+
version: 1.0.6
|
130
130
|
- - "<"
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '2'
|
@@ -136,7 +136,7 @@ dependencies:
|
|
136
136
|
requirements:
|
137
137
|
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 1.
|
139
|
+
version: 1.0.6
|
140
140
|
- - "<"
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '2'
|
@@ -389,7 +389,6 @@ files:
|
|
389
389
|
- spec/features/account_spec.rb
|
390
390
|
- spec/features/admin/orders_spec.rb
|
391
391
|
- spec/features/admin/password_reset_spec.rb
|
392
|
-
- spec/features/admin/payment_methods_spec.rb
|
393
392
|
- spec/features/admin/products_spec.rb
|
394
393
|
- spec/features/admin/sign_in_spec.rb
|
395
394
|
- spec/features/admin/sign_out_spec.rb
|
@@ -435,7 +434,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
435
434
|
requirements:
|
436
435
|
- none
|
437
436
|
rubyforge_project:
|
438
|
-
rubygems_version: 2.5.1
|
437
|
+
rubygems_version: 2.4.5.1
|
439
438
|
signing_key:
|
440
439
|
specification_version: 4
|
441
440
|
summary: Provides authentication and authorization services for use with Solidus by
|
@@ -451,7 +450,6 @@ test_files:
|
|
451
450
|
- spec/features/account_spec.rb
|
452
451
|
- spec/features/admin/orders_spec.rb
|
453
452
|
- spec/features/admin/password_reset_spec.rb
|
454
|
-
- spec/features/admin/payment_methods_spec.rb
|
455
453
|
- spec/features/admin/products_spec.rb
|
456
454
|
- spec/features/admin/sign_in_spec.rb
|
457
455
|
- spec/features/admin/sign_out_spec.rb
|
@@ -1,16 +0,0 @@
|
|
1
|
-
RSpec.feature 'Payment methods', type: :feature do
|
2
|
-
|
3
|
-
background do
|
4
|
-
sign_in_as! create(:admin_user)
|
5
|
-
visit spree.admin_path
|
6
|
-
click_link 'Settings'
|
7
|
-
end
|
8
|
-
|
9
|
-
# Regression test for #5
|
10
|
-
scenario 'can dismiss the banner' do
|
11
|
-
allow_any_instance_of(Spree::User).to receive(:dismissed_banner?) { false }
|
12
|
-
allow(Spree::PaymentMethod).to receive(:production).and_return(payment_methods = [double])
|
13
|
-
allow(payment_methods).to receive(:where).and_return([])
|
14
|
-
click_link 'Payment Methods'
|
15
|
-
end
|
16
|
-
end
|