spree_auth_devise 4.0.1 → 4.1.0.rc1
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 spree_auth_devise might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.circleci/config.yml +41 -0
- data/.gitignore +1 -0
- data/.travis.yml +3 -16
- data/Appraisals +3 -14
- data/Gemfile +1 -1
- data/app/controllers/spree/user_confirmations_controller.rb +2 -0
- data/app/controllers/spree/user_passwords_controller.rb +2 -0
- data/app/controllers/spree/user_registrations_controller.rb +9 -0
- data/app/controllers/spree/user_sessions_controller.rb +23 -1
- data/app/views/spree/user_passwords/edit.html.erb +20 -17
- data/app/views/spree/user_passwords/new.html.erb +18 -15
- data/app/views/spree/user_registrations/new.html.erb +12 -17
- data/app/views/spree/user_sessions/new.html.erb +11 -12
- data/config/routes.rb +0 -1
- data/gemfiles/{spree_3_5.gemfile → spree_4_1.gemfile} +1 -1
- data/lib/controllers/frontend/spree/users_controller.rb +2 -7
- data/lib/generators/spree/auth/install/install_generator.rb +0 -4
- data/lib/spree/testing_support/auth_helpers.rb +36 -0
- data/lib/spree/testing_support/checkout_helpers.rb +24 -0
- data/spec/controllers/spree/admin/orders_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/user_sessions_controller_spec.rb +1 -1
- data/spec/controllers/spree/checkout_controller_spec.rb +12 -13
- data/spec/controllers/spree/products_controller_spec.rb +1 -1
- data/spec/controllers/spree/user_passwords_controller_spec.rb +4 -4
- data/spec/controllers/spree/user_registrations_controller_spec.rb +7 -7
- data/spec/controllers/spree/user_sessions_controller_spec.rb +17 -17
- data/spec/controllers/spree/users_controller_spec.rb +4 -4
- data/spec/features/account_spec.rb +10 -8
- data/spec/features/admin/password_reset_spec.rb +2 -4
- data/spec/features/admin/sign_in_spec.rb +5 -7
- data/spec/features/admin/sign_out_spec.rb +1 -1
- data/spec/features/admin_permissions_spec.rb +1 -1
- data/spec/features/change_email_spec.rb +1 -7
- data/spec/features/checkout_spec.rb +38 -63
- data/spec/features/confirmation_spec.rb +1 -3
- data/spec/features/order_spec.rb +9 -15
- data/spec/features/password_reset_spec.rb +2 -4
- data/spec/features/sign_in_spec.rb +7 -9
- data/spec/features/sign_out_spec.rb +16 -23
- data/spec/features/sign_up_spec.rb +4 -2
- data/spec/mailers/user_mailer_spec.rb +1 -1
- data/spec/spec_helper.rb +16 -0
- data/spec/support/add_to_cart.rb +11 -4
- data/spec/support/authentication_helpers.rb +1 -1
- data/spec/support/capybara.rb +15 -8
- data/spree_auth_devise.gemspec +13 -9
- metadata +100 -74
- data/app/overrides/auth_shared_login_bar.rb +0 -6
- data/app/views/spree/shared/_login.html.erb +0 -18
- data/app/views/spree/shared/_user_form.html.erb +0 -17
- data/gemfiles/spree_3_2.gemfile +0 -8
- data/gemfiles/spree_3_7.gemfile +0 -9
- data/gemfiles/spree_4_0.gemfile +0 -8
- data/lib/assets/javascripts/spree/backend/spree_auth.js.erb +0 -1
- data/lib/assets/javascripts/spree/frontend/account.js +0 -8
- data/lib/assets/javascripts/spree/frontend/spree_auth.js.erb +0 -2
- data/lib/assets/stylesheets/spree/backend/spree_auth.css.erb +0 -3
- data/lib/assets/stylesheets/spree/frontend/spree_auth.css.erb +0 -3
- data/lib/controllers/frontend/spree/store_controller_decorator.rb +0 -7
- data/lib/views/frontend/spree/checkout/_new_user.html.erb +0 -20
- data/lib/views/frontend/spree/checkout/registration.html.erb +0 -25
- data/lib/views/frontend/spree/shared/_link_to_account.html.erb +0 -6
- data/lib/views/frontend/spree/users/edit.html.erb +0 -17
- data/lib/views/frontend/spree/users/show.html.erb +0 -48
- data/spec/requests/spree/frontend/user_update_spec.rb +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11fab6b968334f977554a9a95b6a80e37047b42add498201ea0db74ca0701a6a
|
4
|
+
data.tar.gz: cab55c1d0e6344a72c5e11ee8621f43fce3787d99e412515bf9f8059a1727e7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83bfc852ef5ac9cd03c19f6a9f8bcbdd17aac744d565102777f4ef1b2910f53d80b6663eee3d7f1dce2dc6f66f0e553270f366086f8e303963f995b72b9d8598
|
7
|
+
data.tar.gz: 66b5fe7c4364a068ee0b2169713480afb3b0064cc3c883f0ddbf6ee6086cd9b5caac2058b2c5c2cab9da82230a6441659df89ce071bc973a2278fd50a73e5341
|
@@ -0,0 +1,41 @@
|
|
1
|
+
version: 2
|
2
|
+
|
3
|
+
jobs:
|
4
|
+
update_staging_repository:
|
5
|
+
docker:
|
6
|
+
- image: circleci/ruby:2.6.3
|
7
|
+
steps:
|
8
|
+
- add_ssh_keys:
|
9
|
+
fingerprints:
|
10
|
+
- 54:50:5e:4e:80:6d:2e:26:43:c6:99:bd:39:b2:71:dc
|
11
|
+
- run: mkdir -p ~/.ssh
|
12
|
+
- run: ssh-keyscan -H github.com >> ~/.ssh/known_hosts
|
13
|
+
- run: ssh-add -D
|
14
|
+
- run: ssh-add ~/.ssh/id_rsa_54505e4e806d2e2643c699bd39b271dc
|
15
|
+
- run: git clone -b master git@github.com:spark-solutions/spree-designs.git
|
16
|
+
- run: gem install bundler -v 1.17.3
|
17
|
+
- run:
|
18
|
+
command: bundle update spree_auth_devise
|
19
|
+
working_directory: ~/project/spree-designs
|
20
|
+
- run:
|
21
|
+
command: |
|
22
|
+
git config user.name 'AutoDeploy'
|
23
|
+
git config user.email 'autodeploy@sparksolutions.co'
|
24
|
+
working_directory: ~/project/spree-designs
|
25
|
+
- run:
|
26
|
+
command: |
|
27
|
+
git add -A
|
28
|
+
git commit -m "Auto-commit v#${CIRCLE_BUILD_NUM}"
|
29
|
+
working_directory: ~/project/spree-designs
|
30
|
+
- run:
|
31
|
+
command: git push origin master
|
32
|
+
working_directory: ~/project/spree-designs
|
33
|
+
|
34
|
+
workflows:
|
35
|
+
version: 2
|
36
|
+
update_staging_repository:
|
37
|
+
jobs:
|
38
|
+
- update_staging_repository:
|
39
|
+
filters:
|
40
|
+
branches:
|
41
|
+
only: master
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -17,31 +17,18 @@ language: ruby
|
|
17
17
|
|
18
18
|
rvm:
|
19
19
|
- 2.5.1
|
20
|
-
- 2.
|
21
|
-
- 2.3.8
|
20
|
+
# - 2.6.5
|
22
21
|
|
23
22
|
gemfile:
|
24
|
-
- gemfiles/
|
25
|
-
- gemfiles/spree_3_7.gemfile
|
26
|
-
- gemfiles/spree_4_0.gemfile
|
23
|
+
- gemfiles/spree_4_1.gemfile
|
27
24
|
- gemfiles/spree_master.gemfile
|
28
25
|
|
29
26
|
matrix:
|
30
27
|
allow_failures:
|
31
28
|
- gemfile: gemfiles/spree_master.gemfile
|
32
|
-
exclude:
|
33
|
-
- rvm: 2.3.8
|
34
|
-
gemfile: gemfiles/spree_4_0.gemfile
|
35
|
-
- rvm: 2.4.4
|
36
|
-
gemfile: gemfiles/spree_4_0.gemfile
|
37
|
-
- rvm: 2.3.8
|
38
|
-
gemfile: gemfiles/spree_master.gemfile
|
39
|
-
- rvm: 2.4.4
|
40
|
-
gemfile: gemfiles/spree_master.gemfile
|
41
|
-
- rvm: 2.5.1
|
42
|
-
gemfile: gemfiles/spree_3_5.gemfile
|
43
29
|
|
44
30
|
before_install:
|
31
|
+
- gem update bundler
|
45
32
|
- mysql -u root -e "GRANT ALL ON *.* TO 'travis'@'%';"
|
46
33
|
- wget -N https://chromedriver.storage.googleapis.com/2.35/chromedriver_linux64.zip -P ~/
|
47
34
|
- unzip ~/chromedriver_linux64.zip -d ~/
|
data/Appraisals
CHANGED
@@ -1,20 +1,9 @@
|
|
1
|
-
appraise 'spree-
|
2
|
-
gem 'spree', '~> 3.5.0'
|
3
|
-
gem 'rails-controller-testing'
|
4
|
-
end
|
5
|
-
|
6
|
-
appraise 'spree-3-7' do
|
7
|
-
gem 'sass-rails'
|
8
|
-
gem 'spree', '~> 3.7.0'
|
9
|
-
gem 'rails-controller-testing'
|
10
|
-
end
|
11
|
-
|
12
|
-
appraise 'spree-4-0' do
|
13
|
-
gem 'spree', '~> 4.0.0.rc2'
|
1
|
+
appraise 'spree-4-1' do
|
14
2
|
gem 'rails-controller-testing'
|
3
|
+
gem 'spree', github: 'spree/spree', branch: 'master'
|
15
4
|
end
|
16
5
|
|
17
6
|
appraise 'spree-master' do
|
18
|
-
gem 'spree', github: 'spree/spree', branch: 'master'
|
19
7
|
gem 'rails-controller-testing'
|
8
|
+
gem 'spree', github: 'spree/spree', branch: 'master'
|
20
9
|
end
|
data/Gemfile
CHANGED
@@ -6,6 +6,8 @@ class Spree::UserConfirmationsController < Devise::ConfirmationsController
|
|
6
6
|
include Spree::Core::ControllerHelpers::Order
|
7
7
|
include Spree::Core::ControllerHelpers::Store
|
8
8
|
|
9
|
+
before_action :set_current_order
|
10
|
+
|
9
11
|
protected
|
10
12
|
|
11
13
|
def after_confirmation_path_for(resource_name, resource)
|
@@ -10,6 +10,8 @@ class Spree::UserPasswordsController < Devise::PasswordsController
|
|
10
10
|
include SpreeI18n::ControllerLocaleHelper
|
11
11
|
end
|
12
12
|
|
13
|
+
before_action :set_current_order
|
14
|
+
|
13
15
|
# Overridden due to bug in Devise.
|
14
16
|
# respond_with resource, :location => new_session_path(resource_name)
|
15
17
|
# is generating bad url /session/new.user
|
@@ -11,6 +11,7 @@ class Spree::UserRegistrationsController < Devise::RegistrationsController
|
|
11
11
|
end
|
12
12
|
|
13
13
|
before_action :check_permissions, only: [:edit, :update]
|
14
|
+
before_action :set_current_order
|
14
15
|
skip_before_action :require_no_authentication
|
15
16
|
|
16
17
|
# GET /resource/sign_up
|
@@ -75,9 +76,17 @@ class Spree::UserRegistrationsController < Devise::RegistrationsController
|
|
75
76
|
'devise.user_registrations'
|
76
77
|
end
|
77
78
|
|
79
|
+
def after_sign_up_path_for(resource)
|
80
|
+
after_sign_in_redirect(resource) if is_navigational_format?
|
81
|
+
end
|
82
|
+
|
78
83
|
private
|
79
84
|
|
80
85
|
def spree_user_params
|
81
86
|
params.require(:spree_user).permit(Spree::PermittedAttributes.user_attributes)
|
82
87
|
end
|
88
|
+
|
89
|
+
def after_sign_in_redirect(resource_or_scope)
|
90
|
+
stored_location_for(resource_or_scope) || account_path
|
91
|
+
end
|
83
92
|
end
|
@@ -10,6 +10,8 @@ class Spree::UserSessionsController < Devise::SessionsController
|
|
10
10
|
include SpreeI18n::ControllerLocaleHelper
|
11
11
|
end
|
12
12
|
|
13
|
+
before_action :set_current_order
|
14
|
+
|
13
15
|
def create
|
14
16
|
authenticate_spree_user!
|
15
17
|
|
@@ -17,7 +19,7 @@ class Spree::UserSessionsController < Devise::SessionsController
|
|
17
19
|
respond_to do |format|
|
18
20
|
format.html {
|
19
21
|
flash[:success] = Spree.t(:logged_in_succesfully)
|
20
|
-
redirect_back_or_default(
|
22
|
+
redirect_back_or_default(after_sign_in_redirect(spree_current_user))
|
21
23
|
}
|
22
24
|
format.js {
|
23
25
|
render json: { user: spree_current_user,
|
@@ -54,4 +56,24 @@ class Spree::UserSessionsController < Devise::SessionsController
|
|
54
56
|
redirect_to(session["spree_user_return_to"] || default)
|
55
57
|
session["spree_user_return_to"] = nil
|
56
58
|
end
|
59
|
+
|
60
|
+
def after_sign_in_redirect(resource_or_scope)
|
61
|
+
stored_location_for(resource_or_scope) || account_path
|
62
|
+
end
|
63
|
+
|
64
|
+
def respond_to_on_destroy
|
65
|
+
# We actually need to hardcode this as Rails default responder doesn't
|
66
|
+
# support returning empty response on GET request
|
67
|
+
respond_to do |format|
|
68
|
+
format.all { head :no_content }
|
69
|
+
format.any(*navigational_formats) { redirect_to after_sign_out_redirect(resource_name) }
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def after_sign_out_redirect(resource_or_scope)
|
74
|
+
scope = Devise::Mapping.find_scope!(resource_or_scope)
|
75
|
+
router_name = Devise.mappings[scope].router_name
|
76
|
+
context = router_name ? send(router_name) : self
|
77
|
+
context.respond_to?(:login_path) ? context.login_path : "/"
|
78
|
+
end
|
57
79
|
end
|
@@ -1,22 +1,25 @@
|
|
1
1
|
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @spree_user } %>
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
2
|
+
|
3
|
+
<div class="container user-passwords">
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-lg-6 offset-lg-3">
|
6
|
+
<div class="card mb-3 user-passwords-no-border">
|
7
|
+
<h3 class="spree-mb-large spree-mt-large spree-header"><%= Spree.t(:change_your_password) %></h3>
|
8
|
+
<div class="card-body">
|
9
|
+
<%= form_for @spree_user, as: :spree_user, url: spree.update_password_path, method: :put do |f| %>
|
10
|
+
<div class="form-group">
|
11
|
+
<%= f.label :password, Spree.t(:password), class: 'spree-flat-label' %>
|
12
|
+
<%= f.password_field :password, class: "spree-flat-input" %>
|
13
|
+
</div>
|
14
|
+
<div class="form-group">
|
15
|
+
<%= f.label :password_confirmation, Spree.t(:confirm_password), class: 'spree-flat-label' %>
|
16
|
+
<%= f.password_field :password_confirmation, class: "spree-flat-input" %>
|
17
|
+
</div>
|
18
|
+
<%= f.hidden_field :reset_password_token %>
|
19
|
+
<%= f.submit Spree.t(:update), class: 'btn btn-primary btn-block spree-btn mt-2' %>
|
20
|
+
<% end %>
|
16
21
|
</div>
|
17
|
-
|
18
|
-
<%= f.submit Spree.t(:update), :class => 'btn btn-lg btn-success btn-block' %>
|
19
|
-
<% end %>
|
22
|
+
</div>
|
20
23
|
</div>
|
21
24
|
</div>
|
22
25
|
</div>
|
@@ -1,21 +1,24 @@
|
|
1
1
|
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @spree_user } %>
|
2
|
-
<div class="col-lg-6 offset-lg-3" id="forgot-password">
|
3
|
-
<div class="card mb-3">
|
4
|
-
<div class="card-header">
|
5
|
-
<h3 class="card-title mb-0 h6"><%= Spree.t(:forgot_password) %></h3>
|
6
|
-
</div>
|
7
|
-
<div class="card-body">
|
8
|
-
<p><%= Spree.t(:instructions_to_reset_password) %></p>
|
9
2
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
<div>
|
16
|
-
|
3
|
+
<div class="container user-passwords">
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-lg-6 offset-lg-3" id="forgot-password">
|
6
|
+
<div class="card mb-3 user-passwords-no-border">
|
7
|
+
<h3 class="spree-mb-large spree-mt-large spree-header"><%= Spree.t(:forgot_password) %></h3>
|
8
|
+
<div class="card-body">
|
9
|
+
<p><%= Spree.t(:instructions_to_reset_password) %></p>
|
10
|
+
|
11
|
+
<%= form_for Spree::User.new, as: :spree_user, url: spree.reset_password_path do |f| %>
|
12
|
+
<div class="form-group">
|
13
|
+
<%= f.label :email, Spree.t(:email), class: 'spree-flat-label' %>
|
14
|
+
<%= f.email_field :email, class: "spree-flat-input" %>
|
15
|
+
</div>
|
16
|
+
<div>
|
17
|
+
<%= f.submit Spree.t(:reset_password), class: 'btn btn-primary btn-block spree-btn mt-2' %>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
17
20
|
</div>
|
18
|
-
|
21
|
+
</div>
|
19
22
|
</div>
|
20
23
|
</div>
|
21
24
|
</div>
|
@@ -1,22 +1,17 @@
|
|
1
1
|
<% @body_id = 'signup' %>
|
2
|
-
<%= render :
|
2
|
+
<%= render partial: 'spree/shared/error_messages', locals: { target: @user } %>
|
3
3
|
<div class="col-lg-6 offset-lg-3">
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<div data-hook="signup_inside_form">
|
11
|
-
<%= render :partial => 'spree/shared/user_form', :locals => { :f => f } %>
|
12
|
-
<div><%= f.submit Spree.t(:create), :class => 'btn btn-lg btn-success btn-block' %></div>
|
13
|
-
</div>
|
14
|
-
<% end %>
|
15
|
-
<div class="text-center">
|
16
|
-
<%= Spree.t(:or) %>
|
17
|
-
<%= link_to Spree.t(:login_as_existing), spree.login_path %>
|
18
|
-
</div>
|
19
|
-
<div data-hook="login_extras"></div>
|
4
|
+
<h3 class="spree-header spree-mb-large spree-mt-large"><%= Spree.t(:new_customer) %></h3>
|
5
|
+
<div id="new-customer" data-hook="login">
|
6
|
+
<%= form_for resource, as: :spree_user, url: spree.registration_path do |f| %>
|
7
|
+
<div data-hook="signup_inside_form">
|
8
|
+
<%= render partial: 'spree/shared/user_form', locals: { f: f, remember_me_field: true } %>
|
9
|
+
<div><%= f.submit Spree.t(:sign_up), class: 'btn btn-primary btn-block spree-btn mb-5' %></div>
|
20
10
|
</div>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<h3 class="spree-header header-sm spree-mt-medium mb-3 mb-sm-4 mb-xl-4"><%= Spree.t('already_have_account') %></h3>
|
14
|
+
<%= link_to Spree.t(:log_in), spree.login_path, class: 'btn btn-block btn-outline-primary spree-btn spree-mb-large' %>
|
15
|
+
<div data-hook="login_extras"></div>
|
21
16
|
</div>
|
22
17
|
</div>
|
@@ -1,17 +1,16 @@
|
|
1
1
|
<% @body_id = 'login' %>
|
2
|
-
<div class="
|
3
|
-
<div class="
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
<%= render :partial => 'spree/shared/login' %>
|
9
|
-
<div class="text-center">
|
10
|
-
<%= Spree.t(:or) %>
|
11
|
-
<%= link_to Spree.t(:create_a_new_account), spree.signup_path %> |
|
12
|
-
<%= link_to Spree.t(:forgot_password), spree.recover_password_path %>
|
13
|
-
</div>
|
2
|
+
<div class="container user-sessions user-sessions-new">
|
3
|
+
<div class="row">
|
4
|
+
<div class="col-lg-6 offset-lg-3">
|
5
|
+
<div class="mb-3">
|
6
|
+
<div id="existing-customer" data-hook="login">
|
7
|
+
<%= render partial: 'spree/shared/login' %>
|
14
8
|
<div data-hook="login_extras"></div>
|
9
|
+
</div>
|
10
|
+
<div class="col-lg-11 mx-auto" data-hook="registration">
|
11
|
+
<%= render partial: 'spree/shared/registration', locals: { registration_button: 'registration-button' } %>
|
12
|
+
</div>
|
15
13
|
</div>
|
14
|
+
</div>
|
16
15
|
</div>
|
17
16
|
</div>
|
data/config/routes.rb
CHANGED
@@ -27,7 +27,6 @@ Spree::Core::Engine.add_routes do
|
|
27
27
|
get '/checkout/registration' => 'checkout#registration', :as => :checkout_registration
|
28
28
|
put '/checkout/registration' => 'checkout#update_registration', :as => :update_checkout_registration
|
29
29
|
|
30
|
-
get '/account_link' => 'store#account_link'
|
31
30
|
resource :account, controller: 'users'
|
32
31
|
|
33
32
|
namespace :admin, path: Spree.admin_path do
|
@@ -1,11 +1,11 @@
|
|
1
1
|
class Spree::UsersController < Spree::StoreController
|
2
|
-
|
2
|
+
before_action :set_current_order, except: :show
|
3
|
+
prepend_before_action :load_object, only: [:show, :edit, :update]
|
3
4
|
prepend_before_action :authorize_actions, only: :new
|
4
5
|
|
5
6
|
include Spree::Core::ControllerHelpers
|
6
7
|
|
7
8
|
def show
|
8
|
-
load_object
|
9
9
|
@orders = @user.orders.complete.order('completed_at desc')
|
10
10
|
end
|
11
11
|
|
@@ -23,12 +23,7 @@ skip_before_action :set_current_order, only: :show
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
def edit
|
27
|
-
load_object
|
28
|
-
end
|
29
|
-
|
30
26
|
def update
|
31
|
-
load_object
|
32
27
|
if @user.update(user_params)
|
33
28
|
if params[:user][:password].present?
|
34
29
|
# this logic needed b/c devise wants to log us out after password changes
|
@@ -10,10 +10,6 @@ module Spree
|
|
10
10
|
paths.flatten
|
11
11
|
end
|
12
12
|
|
13
|
-
def add_javascripts
|
14
|
-
append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_auth\n"
|
15
|
-
end
|
16
|
-
|
17
13
|
def generate_devise_key
|
18
14
|
return if ENV['CI']
|
19
15
|
template 'config/initializers/devise.rb', 'config/initializers/devise.rb'
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Spree
|
2
|
+
module TestingSupport
|
3
|
+
module AuthHelpers
|
4
|
+
def log_in(email:, password:, remember_me: true)
|
5
|
+
visit spree.login_path
|
6
|
+
|
7
|
+
fill_in 'Email', with: email
|
8
|
+
fill_in 'Password', with: password
|
9
|
+
|
10
|
+
# Regression test for #1257
|
11
|
+
first('label', text: 'Remember me').click if remember_me
|
12
|
+
click_button 'Log in'
|
13
|
+
|
14
|
+
expect(page).to have_content 'Logged in successfully'
|
15
|
+
end
|
16
|
+
|
17
|
+
def log_out
|
18
|
+
show_user_menu
|
19
|
+
click_link 'LOG OUT'
|
20
|
+
|
21
|
+
expect(page).to have_content 'Signed out successfully'
|
22
|
+
end
|
23
|
+
|
24
|
+
def show_user_menu
|
25
|
+
find("button[aria-label='Show user menu']").click
|
26
|
+
end
|
27
|
+
|
28
|
+
def show_user_account
|
29
|
+
within '#nav-bar' do
|
30
|
+
show_user_menu
|
31
|
+
click_link 'MY ACCOUNT'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Spree
|
2
|
+
module TestingSupport
|
3
|
+
module CheckoutHelpers
|
4
|
+
def fill_in_address
|
5
|
+
address = 'order_bill_address_attributes'
|
6
|
+
fill_in "#{address}_firstname", with: 'Ryan'
|
7
|
+
fill_in "#{address}_lastname", with: 'Bigg'
|
8
|
+
fill_in "#{address}_address1", with: '143 Swan Street'
|
9
|
+
fill_in "#{address}_city", with: 'Richmond'
|
10
|
+
select country.name, from: "#{address}_country_id"
|
11
|
+
select state.name, from: "#{address}_state_id"
|
12
|
+
fill_in "#{address}_zipcode", with: '12345'
|
13
|
+
fill_in "#{address}_phone", with: '(555) 555-5555'
|
14
|
+
end
|
15
|
+
|
16
|
+
def fill_in_credit_card_info(invalid: false)
|
17
|
+
fill_in 'name_on_card', with: 'Spree Commerce'
|
18
|
+
fill_in 'card_number', with: invalid ? '123' : '4111 1111 1111 1111'
|
19
|
+
fill_in 'card_expiry', with: '12 / 24'
|
20
|
+
fill_in 'card_code', with: '123'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -2,7 +2,7 @@ RSpec.describe Spree::Admin::UserSessionsController, type: :controller do
|
|
2
2
|
before { @request.env['devise.mapping'] = Devise.mappings[:spree_user] }
|
3
3
|
|
4
4
|
describe '#authorization_failure' do
|
5
|
-
subject {
|
5
|
+
subject { get :authorization_failure }
|
6
6
|
|
7
7
|
context 'user signed in' do
|
8
8
|
before { allow(controller).to receive(:spree_current_user) { build_stubbed(:user) } }
|
@@ -19,14 +19,14 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
19
19
|
before { allow(controller).to receive(:spree_current_user) { user } }
|
20
20
|
|
21
21
|
it 'proceeds to the first checkout step' do
|
22
|
-
|
22
|
+
get :edit, params: { state: 'address' }
|
23
23
|
expect(response).to render_template :edit
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
context 'when authenticated as guest' do
|
28
28
|
it 'redirects to registration step' do
|
29
|
-
|
29
|
+
get :edit, params: { state: 'address' }
|
30
30
|
expect(response).to redirect_to spree.checkout_registration_path
|
31
31
|
end
|
32
32
|
end
|
@@ -42,14 +42,14 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
42
42
|
before { allow(controller).to receive(:spree_current_user) { user } }
|
43
43
|
|
44
44
|
it 'proceeds to the first checkout step' do
|
45
|
-
|
45
|
+
get :edit, params: { state: 'address' }
|
46
46
|
expect(response).to render_template :edit
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
50
|
context 'when authenticated as guest' do
|
51
51
|
it 'proceeds to the first checkout step' do
|
52
|
-
|
52
|
+
get :edit, params: { state: 'address' }
|
53
53
|
expect(response).to render_template :edit
|
54
54
|
end
|
55
55
|
end
|
@@ -81,9 +81,8 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
81
81
|
else
|
82
82
|
request.cookie_jar.signed[:guest_token] = 'ABC'
|
83
83
|
end
|
84
|
-
|
84
|
+
post :update, params: { state: 'confirm' }
|
85
85
|
expect(response).to redirect_to spree.order_path(order)
|
86
|
-
expect(flash.notice).to eq Spree.t(:order_processed_successfully)
|
87
86
|
end
|
88
87
|
end
|
89
88
|
|
@@ -99,7 +98,7 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
99
98
|
end
|
100
99
|
|
101
100
|
it 'redirects to the standard order view' do
|
102
|
-
|
101
|
+
post :update, params: { state: 'confirm' }
|
103
102
|
expect(response).to redirect_to spree.order_path(order)
|
104
103
|
end
|
105
104
|
end
|
@@ -110,7 +109,7 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
110
109
|
it 'does not check registration' do
|
111
110
|
allow(controller).to receive(:check_authorization)
|
112
111
|
expect(controller).not_to receive(:check_registration)
|
113
|
-
|
112
|
+
get :registration
|
114
113
|
end
|
115
114
|
|
116
115
|
it 'checks if the user is authorized for :edit' do
|
@@ -120,7 +119,7 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
120
119
|
else
|
121
120
|
request.cookie_jar.signed[:guest_token] = token
|
122
121
|
end
|
123
|
-
|
122
|
+
get :registration, params: {}
|
124
123
|
end
|
125
124
|
end
|
126
125
|
|
@@ -131,12 +130,12 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
131
130
|
controller.stub :check_authorization
|
132
131
|
order.stub update: true
|
133
132
|
controller.should_not_receive :check_registration
|
134
|
-
|
133
|
+
put :update_registration, params: { order: {} }
|
135
134
|
end
|
136
135
|
|
137
136
|
it 'renders the registration view if unable to save' do
|
138
137
|
allow(controller).to receive(:check_authorization)
|
139
|
-
|
138
|
+
put :update_registration, params: { order: { email: 'invalid' } }
|
140
139
|
expect(flash[:error]).to eq I18n.t(:email_is_invalid, scope: [:errors, :messages])
|
141
140
|
expect(response).to render_template :registration
|
142
141
|
end
|
@@ -144,7 +143,7 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
144
143
|
it 'redirects to the checkout_path after saving' do
|
145
144
|
allow(order).to receive(:update) { true }
|
146
145
|
allow(controller).to receive(:check_authorization)
|
147
|
-
|
146
|
+
put :update_registration, params: { order: { email: 'jobs@spreecommerce.com' } }
|
148
147
|
expect(response).to redirect_to spree.checkout_state_path(:address)
|
149
148
|
end
|
150
149
|
|
@@ -156,7 +155,7 @@ RSpec.describe Spree::CheckoutController, type: :controller do
|
|
156
155
|
end
|
157
156
|
allow(order).to receive(:update) { true }
|
158
157
|
expect(controller).to receive(:authorize!).with(:edit, order, token)
|
159
|
-
|
158
|
+
put :update_registration, params: { order: { email: 'jobs@spreecommerce.com' } }
|
160
159
|
end
|
161
160
|
end
|
162
161
|
end
|
@@ -2,7 +2,7 @@ RSpec.describe Spree::ProductsController, type: :controller do
|
|
2
2
|
let!(:product) { create(:product, available_on: 1.year.from_now) }
|
3
3
|
let!(:user) { build_stubbed(:user, spree_api_key: 'fake') }
|
4
4
|
|
5
|
-
subject(:request) {
|
5
|
+
subject(:request) { get :show, params: { id: product.to_param }}
|
6
6
|
|
7
7
|
before do
|
8
8
|
allow(controller).to receive(:before_save_new_order)
|