spree_auth_devise 4.0.0.rc2 → 4.1.1

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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +41 -0
  3. data/.gitignore +1 -0
  4. data/.travis.yml +3 -21
  5. data/Appraisals +3 -19
  6. data/Gemfile +2 -2
  7. data/README.md +3 -12
  8. data/app/controllers/spree/user_confirmations_controller.rb +24 -0
  9. data/app/controllers/spree/user_passwords_controller.rb +2 -0
  10. data/app/controllers/spree/user_registrations_controller.rb +27 -1
  11. data/app/controllers/spree/user_sessions_controller.rb +23 -1
  12. data/app/views/spree/user_passwords/edit.html.erb +20 -17
  13. data/app/views/spree/user_passwords/new.html.erb +17 -15
  14. data/app/views/spree/user_registrations/new.html.erb +12 -17
  15. data/app/views/spree/user_sessions/new.html.erb +11 -12
  16. data/config/locales/en.yml +3 -1
  17. data/config/routes.rb +2 -3
  18. data/db/migrate/20120203010234_add_reset_password_sent_at_to_spree_users.rb +2 -2
  19. data/gemfiles/{spree_3_5.gemfile → spree_4_1.gemfile} +1 -1
  20. data/lib/controllers/frontend/spree/checkout_controller_decorator.rb +2 -2
  21. data/lib/controllers/frontend/spree/users_controller.rb +11 -6
  22. data/lib/generators/spree/auth/install/install_generator.rb +0 -4
  23. data/lib/spree/testing_support/auth_helpers.rb +36 -0
  24. data/lib/spree/testing_support/checkout_helpers.rb +24 -0
  25. data/lib/views/backend/spree/admin/user_passwords/new.html.erb +1 -1
  26. data/lib/views/backend/spree/admin/user_sessions/new.html.erb +1 -1
  27. data/spec/controllers/spree/admin/orders_controller_spec.rb +1 -1
  28. data/spec/controllers/spree/admin/user_sessions_controller_spec.rb +1 -1
  29. data/spec/controllers/spree/checkout_controller_spec.rb +15 -16
  30. data/spec/controllers/spree/products_controller_spec.rb +1 -1
  31. data/spec/controllers/spree/user_passwords_controller_spec.rb +4 -4
  32. data/spec/controllers/spree/user_registrations_controller_spec.rb +8 -8
  33. data/spec/controllers/spree/user_sessions_controller_spec.rb +17 -17
  34. data/spec/controllers/spree/users_controller_spec.rb +4 -4
  35. data/spec/features/account_spec.rb +10 -8
  36. data/spec/features/admin/password_reset_spec.rb +2 -4
  37. data/spec/features/admin/sign_in_spec.rb +5 -7
  38. data/spec/features/admin/sign_out_spec.rb +1 -1
  39. data/spec/features/admin_permissions_spec.rb +1 -1
  40. data/spec/features/change_email_spec.rb +1 -7
  41. data/spec/features/checkout_spec.rb +38 -63
  42. data/spec/features/confirmation_spec.rb +3 -5
  43. data/spec/features/order_spec.rb +9 -15
  44. data/spec/features/password_reset_spec.rb +2 -4
  45. data/spec/features/sign_in_spec.rb +7 -9
  46. data/spec/features/sign_out_spec.rb +16 -23
  47. data/spec/features/sign_up_spec.rb +6 -4
  48. data/spec/mailers/user_mailer_spec.rb +1 -1
  49. data/spec/models/user_spec.rb +5 -5
  50. data/spec/requests/spree/frontend/user_update_spec.rb +42 -0
  51. data/spec/spec_helper.rb +16 -0
  52. data/spec/support/add_to_cart.rb +11 -4
  53. data/spec/support/authentication_helpers.rb +1 -1
  54. data/spec/support/capybara.rb +15 -8
  55. data/spree_auth_devise.gemspec +14 -10
  56. metadata +104 -74
  57. data/app/overrides/auth_shared_login_bar.rb +0 -6
  58. data/app/views/spree/shared/_login.html.erb +0 -18
  59. data/app/views/spree/shared/_user_form.html.erb +0 -17
  60. data/gemfiles/spree_3_2.gemfile +0 -8
  61. data/gemfiles/spree_3_7.gemfile +0 -9
  62. data/gemfiles/spree_4_0.gemfile +0 -8
  63. data/lib/assets/javascripts/spree/backend/spree_auth.js.erb +0 -1
  64. data/lib/assets/javascripts/spree/frontend/account.js +0 -8
  65. data/lib/assets/javascripts/spree/frontend/spree_auth.js.erb +0 -2
  66. data/lib/assets/stylesheets/spree/backend/spree_auth.css.erb +0 -3
  67. data/lib/assets/stylesheets/spree/frontend/spree_auth.css.erb +0 -3
  68. data/lib/controllers/frontend/spree/store_controller_decorator.rb +0 -7
  69. data/lib/views/frontend/spree/checkout/_new_user.html.erb +0 -20
  70. data/lib/views/frontend/spree/checkout/registration.html.erb +0 -25
  71. data/lib/views/frontend/spree/shared/_link_to_account.html.erb +0 -6
  72. data/lib/views/frontend/spree/users/edit.html.erb +0 -17
  73. data/lib/views/frontend/spree/users/show.html.erb +0 -48
@@ -5,7 +5,7 @@
5
5
 
6
6
  <p><%= Spree.t(:instructions_to_reset_password) %></p>
7
7
 
8
- <%= form_for Spree::User.new, :as => :spree_user, :url => spree.reset_password_path do |f| %>
8
+ <%= form_for Spree.user_class.new, :as => :spree_user, :url => spree.reset_password_path do |f| %>
9
9
  <p>
10
10
  <%= f.label :email, Spree.t(:email) %><br />
11
11
  <%= f.email_field :email %>
@@ -4,7 +4,7 @@
4
4
 
5
5
  <div data-hook="login" class="card border-0">
6
6
  <div class="card-body">
7
- <%= form_for Spree::User.new, :as => :spree_user, :url => spree.admin_create_new_session_path do |f| %>
7
+ <%= form_for Spree.user_class.new, :as => :spree_user, :url => spree.admin_create_new_session_path do |f| %>
8
8
  <div id="password-credentials">
9
9
  <div class="form-group text-center">
10
10
  <%= f.label :email, Spree.t(:email) %>
@@ -5,7 +5,7 @@ module Spree
5
5
 
6
6
  context '#authorize_admin' do
7
7
  it 'grants access to users with an admin role' do
8
- spree_get :new
8
+ get :new
9
9
  expect(response).to redirect_to spree.cart_admin_order_path(Order.last)
10
10
  end
11
11
  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 { spree_get :authorization_failure }
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
- spree_get :edit, { state: 'address' }
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
- spree_get :edit, { state: 'address' }
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
- spree_get :edit, { state: 'address' }
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
- spree_get :edit, { state: 'address' }
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
- spree_post :update, { state: 'confirm' }
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
- spree_post :update, { state: 'confirm' }
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
- spree_get :registration
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
- spree_get :registration, {}
122
+ get :registration, params: {}
124
123
  end
125
124
  end
126
125
 
@@ -129,22 +128,22 @@ RSpec.describe Spree::CheckoutController, type: :controller do
129
128
 
130
129
  it 'does not check registration' do
131
130
  controller.stub :check_authorization
132
- order.stub update_attributes: true
131
+ order.stub update: true
133
132
  controller.should_not_receive :check_registration
134
- spree_put :update_registration, { order: {} }
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
- spree_put :update_registration, { order: { email: 'invalid' } }
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
143
142
 
144
143
  it 'redirects to the checkout_path after saving' do
145
- allow(order).to receive(:update_attributes) { true }
144
+ allow(order).to receive(:update) { true }
146
145
  allow(controller).to receive(:check_authorization)
147
- spree_put :update_registration, { order: { email: 'jobs@spreecommerce.com' } }
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
 
@@ -154,9 +153,9 @@ RSpec.describe Spree::CheckoutController, type: :controller do
154
153
  else
155
154
  request.cookie_jar.signed[:guest_token] = token
156
155
  end
157
- allow(order).to receive(:update_attributes) { true }
156
+ allow(order).to receive(:update) { true }
158
157
  expect(controller).to receive(:authorize!).with(:edit, order, token)
159
- spree_put :update_registration, { order: { email: 'jobs@spreecommerce.com' } }
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) { spree_get :show, id: product.to_param }
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)
@@ -6,14 +6,14 @@ RSpec.describe Spree::UserPasswordsController, type: :controller do
6
6
  describe 'GET edit' do
7
7
  context 'when the user token has not been specified' do
8
8
  it 'redirects to the new session path' do
9
- spree_get :edit
9
+ get :edit
10
10
  expect(response).to redirect_to(
11
11
  'http://test.host/user/spree_user/sign_in'
12
12
  )
13
13
  end
14
14
 
15
15
  it 'flashes an error' do
16
- spree_get :edit
16
+ get :edit
17
17
  expect(flash[:alert]).to include(
18
18
  "You can't access this page without coming from a password reset " \
19
19
  'email'
@@ -23,7 +23,7 @@ RSpec.describe Spree::UserPasswordsController, type: :controller do
23
23
 
24
24
  context 'when the user token has been specified' do
25
25
  it 'does something' do
26
- spree_get :edit, reset_password_token: token
26
+ get :edit, params: { reset_password_token: token }
27
27
  expect(response.code).to eq('200')
28
28
  end
29
29
  end
@@ -32,7 +32,7 @@ RSpec.describe Spree::UserPasswordsController, type: :controller do
32
32
  context '#update' do
33
33
  context 'when updating password with blank password' do
34
34
  it 'shows error flash message, sets spree_user with token and re-displays password edit form' do
35
- spree_put :update, { spree_user: { password: '', password_confirmation: '', reset_password_token: token } }
35
+ put :update, params: { spree_user: { password: '', password_confirmation: '', reset_password_token: token } }
36
36
  expect(assigns(:spree_user).is_a?(Spree::User)).to eq true
37
37
  expect(assigns(:spree_user).reset_password_token).to eq token
38
38
  expect(flash[:error]).to eq I18n.t(:cannot_be_blank, scope: [:devise, :user_passwords, :spree_user])
@@ -2,11 +2,11 @@ RSpec.describe Spree::UserRegistrationsController, type: :controller do
2
2
  before { @request.env['devise.mapping'] = Devise.mappings[:spree_user] }
3
3
 
4
4
  context '#create' do
5
- before { allow(controller).to receive(:after_sign_up_path_for).and_return(spree.root_path(thing: 7)) }
5
+ before { allow(controller).to receive(:after_sign_up_path_for).and_return(spree.account_path) }
6
6
 
7
- it 'redirects to after_sign_up_path_for' do
8
- spree_post :create, { spree_user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' } }
9
- expect(response).to redirect_to spree.root_path(thing: 7)
7
+ it 'redirects to account_path' do
8
+ post :create, params: { spree_user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' } }
9
+ expect(response).to redirect_to spree.account_path
10
10
  end
11
11
 
12
12
  context 'with a guest token present' do
@@ -24,8 +24,8 @@ RSpec.describe Spree::UserRegistrationsController, type: :controller do
24
24
  else
25
25
  order = create(:order, guest_token: 'ABC', user_id: nil, created_by_id: nil)
26
26
  end
27
- spree_post :create, spree_user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' }
28
- user = Spree::User.find_by_email('foobar@example.com')
27
+ post :create, params: { spree_user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' }}
28
+ user = Spree.user_class.find_by_email('foobar@example.com')
29
29
 
30
30
  order.reload
31
31
  expect(order.user_id).to eq user.id
@@ -38,7 +38,7 @@ RSpec.describe Spree::UserRegistrationsController, type: :controller do
38
38
  else
39
39
  order = create(:order, guest_token: 'ABC', user_id: 200)
40
40
  end
41
- spree_post :create, spree_user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' }
41
+ post :create, params: { spree_user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' }}
42
42
 
43
43
  expect(order.reload.user_id).to eq 200
44
44
  end
@@ -49,7 +49,7 @@ RSpec.describe Spree::UserRegistrationsController, type: :controller do
49
49
  else
50
50
  order = create(:order, guest_token: 'DEF', user_id: nil, created_by_id: nil)
51
51
  end
52
- spree_post :create, spree_user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' }
52
+ post :create, params: { spree_user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' }}
53
53
 
54
54
  expect(order.reload.user_id).to be_nil
55
55
  end
@@ -14,7 +14,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
14
14
 
15
15
  it 'assigns orders with the correct token and no user present' do
16
16
  order = create(:order, email: user.email, token: 'ABC', user_id: nil, created_by_id: nil)
17
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
17
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
18
18
 
19
19
  order.reload
20
20
  expect(order.user_id).to eq user.id
@@ -23,7 +23,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
23
23
 
24
24
  it 'assigns orders with the correct token and no user or email present' do
25
25
  order = create(:order, token: 'ABC', user_id: nil, created_by_id: nil)
26
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
26
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
27
27
 
28
28
  order.reload
29
29
  expect(order.user_id).to eq user.id
@@ -34,7 +34,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
34
34
  order = create(:order, email: user.email, token: 'ABC',
35
35
  user_id: nil, created_by_id: nil,
36
36
  completed_at: 1.minute.ago)
37
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
37
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
38
38
 
39
39
  order.reload
40
40
  expect(order.user_id).to be_nil
@@ -43,14 +43,14 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
43
43
 
44
44
  it 'does not assign orders with an existing user' do
45
45
  order = create(:order, token: 'ABC', user_id: 200)
46
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
46
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
47
47
 
48
48
  expect(order.reload.user_id).to eq 200
49
49
  end
50
50
 
51
51
  it 'does not assign orders with a different token' do
52
52
  order = create(:order, token: 'DEF', user_id: nil, created_by_id: nil)
53
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
53
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
54
54
 
55
55
  expect(order.reload.user_id).to be_nil
56
56
  end
@@ -72,7 +72,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
72
72
  else
73
73
  order = create(:order, email: user.email, guest_token: 'ABC', user_id: nil, created_by_id: nil)
74
74
  end
75
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
75
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
76
76
 
77
77
  order.reload
78
78
  expect(order.user_id).to eq user.id
@@ -85,7 +85,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
85
85
  else
86
86
  order = create(:order, guest_token: 'ABC', user_id: nil, created_by_id: nil)
87
87
  end
88
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
88
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
89
89
 
90
90
  order.reload
91
91
  expect(order.user_id).to eq user.id
@@ -102,7 +102,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
102
102
  user_id: nil, created_by_id: nil,
103
103
  completed_at: 1.minute.ago)
104
104
  end
105
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
105
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
106
106
 
107
107
  order.reload
108
108
  expect(order.user_id).to be_nil
@@ -115,7 +115,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
115
115
  else
116
116
  order = create(:order, guest_token: 'ABC', user_id: 200)
117
117
  end
118
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
118
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
119
119
 
120
120
  expect(order.reload.user_id).to eq 200
121
121
  end
@@ -126,7 +126,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
126
126
  else
127
127
  order = create(:order, guest_token: 'DEF', user_id: nil, created_by_id: nil)
128
128
  end
129
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
129
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
130
130
 
131
131
  expect(order.reload.user_id).to be_nil
132
132
  end
@@ -144,7 +144,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
144
144
  else
145
145
  order = create(:order, email: user.email, guest_token: 'ABC', user_id: nil, created_by_id: nil)
146
146
  end
147
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
147
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
148
148
 
149
149
  order.reload
150
150
  expect(order.user_id).to eq user.id
@@ -153,15 +153,15 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
153
153
  end
154
154
 
155
155
  context "and html format is used" do
156
- it "redirects to default after signing in" do
157
- spree_post :create, spree_user: { email: user.email, password: 'secret' }
158
- expect(response).to redirect_to spree.root_path
156
+ it "redirects to account path after signing in" do
157
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }}
158
+ expect(response).to redirect_to spree.account_path
159
159
  end
160
160
  end
161
161
 
162
162
  context "and js format is used" do
163
163
  it "returns a json with ship and bill address" do
164
- spree_post :create, spree_user: { email: user.email, password: 'secret' }, format: 'js'
164
+ post :create, params: { spree_user: { email: user.email, password: 'secret' }, format: 'js' }
165
165
  parsed = ActiveSupport::JSON.decode(response.body)
166
166
  expect(parsed).to have_key("user")
167
167
  expect(parsed).to have_key("ship_address")
@@ -173,7 +173,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
173
173
  context "using incorrect login information" do
174
174
  context "and html format is used" do
175
175
  it "renders new template again with errors" do
176
- spree_post :create, spree_user: { email: user.email, password: 'wrong' }
176
+ post :create, params: { spree_user: { email: user.email, password: 'wrong' }}
177
177
  expect(response).to render_template('new')
178
178
  expect(flash[:error]).to eq I18n.t(:'devise.failure.invalid')
179
179
  end
@@ -181,7 +181,7 @@ RSpec.describe Spree::UserSessionsController, type: :controller do
181
181
 
182
182
  context "and js format is used" do
183
183
  it "returns a json with the error" do
184
- spree_post :create, spree_user: { email: user.email, password: 'wrong' }, format: 'js'
184
+ post :create, params: { spree_user: { email: user.email, password: 'wrong' }, format: 'js' }
185
185
  parsed = ActiveSupport::JSON.decode(response.body)
186
186
  expect(parsed).to have_key("error")
187
187
  end
@@ -8,14 +8,14 @@ RSpec.describe Spree::UsersController, type: :controller do
8
8
  context '#load_object' do
9
9
  it 'redirects to signup path if user is not found' do
10
10
  allow(controller).to receive(:spree_current_user) { nil }
11
- spree_put :update, { user: { email: 'foobar@example.com' } }
11
+ put :update, params: { user: { email: 'foobar@example.com' } }
12
12
  expect(response).to redirect_to spree.login_path
13
13
  end
14
14
  end
15
15
 
16
16
  context '#create' do
17
17
  it 'creates a new user' do
18
- spree_post :create, { user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' } }
18
+ post :create, params: { user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' } }
19
19
  expect(assigns[:user].new_record?).to be false
20
20
  end
21
21
  end
@@ -23,14 +23,14 @@ RSpec.describe Spree::UsersController, type: :controller do
23
23
  context '#update' do
24
24
  context 'when updating own account' do
25
25
  it 'performs update' do
26
- spree_put :update, { user: { email: 'mynew@email-address.com' } }
26
+ put :update, params: { user: { email: 'mynew@email-address.com' } }
27
27
  expect(assigns[:user].email).to eq 'mynew@email-address.com'
28
28
  expect(response).to redirect_to spree.account_url(only_path: true)
29
29
  end
30
30
  end
31
31
 
32
32
  it 'does not update roles' do
33
- spree_put :update, user: { spree_role_ids: [role.id] }
33
+ put :update, params: { user: { spree_role_ids: [role.id] }}
34
34
  expect(assigns[:user].spree_roles).to_not include role
35
35
  end
36
36
  end
@@ -10,9 +10,9 @@ RSpec.feature 'Accounts', type: :feature do
10
10
 
11
11
  fill_in 'Email', with: user.email
12
12
  fill_in 'Password', with: user.password
13
- click_button 'Login'
13
+ click_button 'Log in'
14
14
 
15
- click_link 'My Account'
15
+ show_user_account
16
16
  expect(page).to have_text 'admin@person.com'
17
17
  end
18
18
 
@@ -22,11 +22,12 @@ RSpec.feature 'Accounts', type: :feature do
22
22
  fill_in 'Email', with: 'email@person.com'
23
23
  fill_in 'Password', with: 'password'
24
24
  fill_in 'Password Confirmation', with: 'password'
25
- click_button 'Create'
25
+ click_button 'Sign Up'
26
26
 
27
- click_link 'My Account'
27
+ show_user_account
28
28
  expect(page).to have_text 'email@person.com'
29
- click_link 'Edit'
29
+
30
+ find('a.account-page-user-info-item-title-edit').click
30
31
 
31
32
  fill_in 'Password', with: 'foobar'
32
33
  fill_in 'Password Confirmation', with: 'foobar'
@@ -42,11 +43,12 @@ RSpec.feature 'Accounts', type: :feature do
42
43
 
43
44
  fill_in 'Email', with: user.email
44
45
  fill_in 'Password', with: user.password
45
- click_button 'Login'
46
+ click_button 'Log in'
46
47
 
47
- click_link 'My Account'
48
+ show_user_account
48
49
  expect(page).to have_text 'email@person.com'
49
- click_link 'Edit'
50
+
51
+ find('a.account-page-user-info-item-title-edit').click
50
52
 
51
53
  fill_in 'Password', with: 'foobar'
52
54
  fill_in 'Password Confirmation', with: 'foobar'
@@ -1,6 +1,4 @@
1
1
  RSpec.feature 'Admin - Reset Password', type: :feature do
2
- let!(:store) { create(:store) }
3
-
4
2
  background do
5
3
  ActionMailer::Base.default_url_options[:host] = 'http://example.com'
6
4
  end
@@ -8,7 +6,7 @@ RSpec.feature 'Admin - Reset Password', type: :feature do
8
6
  scenario 'allows a user to supply an email for the password reset' do
9
7
  user = create(:user, email: 'foobar@example.com', password: 'secret', password_confirmation: 'secret')
10
8
  visit spree.admin_login_path
11
- click_link 'Forgot Password?'
9
+ click_link 'Forgot password?'
12
10
  fill_in 'Email', with: 'foobar@example.com'
13
11
  click_button 'Reset my password'
14
12
  expect(page).to have_text 'You will receive an email with instructions'
@@ -16,7 +14,7 @@ RSpec.feature 'Admin - Reset Password', type: :feature do
16
14
 
17
15
  scenario 'shows errors if no email is supplied' do
18
16
  visit spree.admin_login_path
19
- click_link 'Forgot Password?'
17
+ click_link 'Forgot password?'
20
18
  click_button 'Reset my password'
21
19
  expect(page).to have_text "Email can't be blank"
22
20
  end
@@ -10,14 +10,12 @@ RSpec.feature 'Admin - Sign In', type: :feature do
10
10
  end
11
11
 
12
12
  scenario 'lets a user sign in successfully', js: true do
13
- fill_in 'Email', with: @user.email
14
- fill_in 'Password', with: 'secret'
15
- click_button 'Login'
13
+ log_in(email: @user.email, password: 'secret')
14
+ show_user_menu
16
15
 
17
- expect(page).to have_text 'Logged in successfully'
18
16
  expect(page).not_to have_text 'Login'
19
- expect(page).to have_text 'Logout'
20
- expect(current_path).to eq '/'
17
+ expect(page).to have_text 'LOG OUT'
18
+ expect(current_path).to eq '/account'
21
19
  end
22
20
 
23
21
  scenario 'shows validation errors' do
@@ -35,7 +33,7 @@ RSpec.feature 'Admin - Sign In', type: :feature do
35
33
 
36
34
  fill_in 'Email', with: user.email
37
35
  fill_in 'Password', with: 'secret'
38
- click_button 'Login'
36
+ click_button 'Log in'
39
37
  within '.user-menu' do
40
38
  expect(page).to have_text 'admin@person.com'
41
39
  end
@@ -13,7 +13,7 @@ RSpec.feature 'Admin - Sign Out', type: :feature do
13
13
  end
14
14
 
15
15
  scenario 'allows a signed in user to logout', js: true do
16
- click_link 'Logout'
16
+ log_out
17
17
  visit spree.admin_login_path
18
18
  expect(page).to have_button 'Login'
19
19
  expect(page).not_to have_text 'Logout'
@@ -7,7 +7,7 @@ RSpec.feature 'Admin Permissions', type: :feature do
7
7
 
8
8
  fill_in 'Email', with: user.email
9
9
  fill_in 'Password', with: user.password
10
- click_button 'Login'
10
+ click_button 'Log in'
11
11
  end
12
12
 
13
13
  context 'admin is restricted from accessing orders' do
@@ -3,13 +3,7 @@ RSpec.feature 'Change email', type: :feature do
3
3
  allow_bypass_sign_in
4
4
 
5
5
  user = create(:user, email: 'old@spree.com', password: 'secret')
6
- visit spree.root_path
7
- click_link 'Login'
8
-
9
- fill_in 'spree_user[email]', with: user.email
10
- fill_in 'spree_user[password]', with: 'secret'
11
- click_button 'Login'
12
-
6
+ log_in(email: user.email, password: 'secret')
13
7
  visit spree.edit_account_path
14
8
  end
15
9