summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorPavel Forkert <fxposter@gmail.com>2015-09-24 16:14:16 +0300
committerPavel Forkert <fxposter@gmail.com>2015-09-24 16:14:16 +0300
commit83347954fc3c0c317c77f0528cdbaa456093771a (patch)
treeb9d2a290f762270b11c3753853b7d7584c1966c1 /spec
parentf2999fe8f3709775ea2151fa3dcd7c456267edb2 (diff)
downloadgitlab-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.rb15
-rw-r--r--spec/features/admin/admin_users_spec.rb16
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