Skip to content

Commit 4442988

Browse files
committed
Refactoring log_in_as spec to use user factories with clean option.
1 parent b811fa8 commit 4442988

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

spec/features/log_in_as_spec.rb

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
11
require 'rails_helper'
22

3-
RSpec.feature 'Switch User' do
4-
let(:user_attributes) do
5-
{ email: '[email protected]' }
6-
end
7-
let(:user) do
8-
User.new(user_attributes) { |u| u.save(validate: false) }
9-
end
10-
11-
before do
12-
login_as user
13-
end
3+
RSpec.feature 'Switch User', :clean do
4+
let(:user) { FactoryBot.create(:user) }
5+
let(:admin_user) { FactoryBot.create(:admin)}
146

15-
scenario 'Non-admin user is not allowed to see switch user form' do
16-
visit '/users/sessions/log_in_as'
17-
expect(page).to have_no_selector('select#switch_user_identifier')
7+
context 'Non-admin user' do
8+
before do
9+
login_as user
10+
end
11+
scenario 'is not allowed to see switch user form' do
12+
visit '/users/sessions/log_in_as'
13+
expect(page).to have_no_selector('select#switch_user_identifier')
14+
logout
15+
end
1816
end
1917

20-
scenario 'Admin user is allowed to see switch user form' do
21-
admin = Role.where(name: 'admin').first_or_create
22-
admin.users << user
23-
visit '/users/sessions/log_in_as'
24-
expect(page).to have_css('select#switch_user_identifier')
18+
context 'Admin user' do
19+
before do
20+
login_as admin_user
21+
allow(admin_user).to receive(:admin?).and_return(true)
22+
end
23+
scenario 'is allowed to see switch user form' do
24+
visit '/users/sessions/log_in_as'
25+
expect(page).to have_css('select#switch_user_identifier')
26+
logout
27+
end
2528
end
2629
end

0 commit comments

Comments
 (0)