diff options
author | Pavel Forkert <fxposter@gmail.com> | 2015-09-24 16:14:16 +0300 |
---|---|---|
committer | Pavel Forkert <fxposter@gmail.com> | 2015-09-24 16:14:16 +0300 |
commit | 83347954fc3c0c317c77f0528cdbaa456093771a (patch) | |
tree | b9d2a290f762270b11c3753853b7d7584c1966c1 /spec | |
parent | f2999fe8f3709775ea2151fa3dcd7c456267edb2 (diff) | |
download | gitlab-ce-83347954fc3c0c317c77f0528cdbaa456093771a.tar.gz |
Add option to admin area to sign in as a specific user
Closes #2291
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/admin/users_controller_spec.rb | 15 | ||||
-rw-r--r-- | spec/features/admin/admin_users_spec.rb | 16 |
2 files changed, 31 insertions, 0 deletions
diff --git a/spec/controllers/admin/users_controller_spec.rb b/spec/controllers/admin/users_controller_spec.rb index c40b2c2a583..e4c32cd2a14 100644 --- a/spec/controllers/admin/users_controller_spec.rb +++ b/spec/controllers/admin/users_controller_spec.rb @@ -7,6 +7,21 @@ describe Admin::UsersController do sign_in(admin) end + describe 'PUT login_as' do + let(:user) { create(:user) } + + it 'logs admin as another user' do + expect(warden.authenticate(scope: :user)).not_to eq(user) + put :login_as, id: user.username + expect(warden.authenticate(scope: :user)).to eq(user) + end + + it 'redirects user to homepage' do + put :login_as, id: user.username + expect(response).to redirect_to(root_path) + end + end + describe 'DELETE #user with projects' do let(:user) { create(:user) } let(:project) { create(:project, namespace: user.namespace) } diff --git a/spec/features/admin/admin_users_spec.rb b/spec/features/admin/admin_users_spec.rb index 86717761582..870a82d0ee0 100644 --- a/spec/features/admin/admin_users_spec.rb +++ b/spec/features/admin/admin_users_spec.rb @@ -166,4 +166,20 @@ describe "Admin::Users", feature: true do end end end + + it 'should be able to log in as another user' do + another_user = create(:user) + + visit admin_users_path + + page.within ".user-#{another_user.id}" do + click_link 'Log in' + end + + expect(page).to have_content("Logged in as #{another_user.username}") + + page.within '.sidebar-user .username' do + expect(page).to have_content(another_user.username) + end + end end |