diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-04 21:08:50 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-04 21:08:50 +0300 |
commit | ca05512007cea51e05d3431b2c8bd7228c754370 (patch) | |
tree | 5202d429acd68c071445aff9e352379173ec9c0b /spec/features/admin | |
parent | 6b833f1e0340e00fdee074da9c42c0d4e07a46d2 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features/admin')
-rw-r--r-- | spec/features/admin/admin_mode/workers_spec.rb | 77 | ||||
-rw-r--r-- | spec/features/admin/admin_uses_repository_checks_spec.rb | 66 |
2 files changed, 24 insertions, 119 deletions
diff --git a/spec/features/admin/admin_mode/workers_spec.rb b/spec/features/admin/admin_mode/workers_spec.rb deleted file mode 100644 index e33c9d7e64c..00000000000 --- a/spec/features/admin/admin_mode/workers_spec.rb +++ /dev/null @@ -1,77 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -# Test an operation that triggers background jobs requiring administrative rights -describe 'Admin mode for workers', :do_not_mock_admin_mode, :request_store, :clean_gitlab_redis_shared_state do - let(:user) { create(:user) } - let(:user_to_delete) { create(:user) } - - before do - add_sidekiq_middleware - - sign_in(user) - end - - context 'as a regular user' do - it 'cannot delete user' do - visit admin_user_path(user_to_delete) - - expect(page).to have_gitlab_http_status(:not_found) - end - end - - context 'as an admin user' do - let(:user) { create(:admin) } - - context 'when admin mode disabled' do - it 'cannot delete user', :js do - visit admin_user_path(user_to_delete) - - expect(page).to have_content('Re-authentication required') - end - end - - context 'when admin mode enabled', :delete do - before do - gitlab_enable_admin_mode_sign_in(user) - end - - it 'can delete user', :js do - visit admin_user_path(user_to_delete) - click_button 'Delete user' - - page.within '.modal-dialog' do - find("input[name='username']").send_keys(user_to_delete.name) - click_button 'Delete user' - - wait_for_requests - end - - expect(page).to have_content('The user is being deleted.') - - # Perform jobs while logged out so that admin mode is only enabled in job metadata - execute_jobs_signed_out(user) - - visit admin_user_path(user_to_delete) - - expect(page).to have_title('Not Found') - end - end - end - - def add_sidekiq_middleware - Sidekiq::Testing.server_middleware do |chain| - chain.add Gitlab::SidekiqMiddleware::AdminMode::Server - end - end - - def execute_jobs_signed_out(user) - gitlab_sign_out - - Sidekiq::Worker.drain_all - - sign_in(user) - gitlab_enable_admin_mode_sign_in(user) - end -end diff --git a/spec/features/admin/admin_uses_repository_checks_spec.rb b/spec/features/admin/admin_uses_repository_checks_spec.rb index 954773e766d..3e8197588ed 100644 --- a/spec/features/admin/admin_uses_repository_checks_spec.rb +++ b/spec/features/admin/admin_uses_repository_checks_spec.rb @@ -2,64 +2,46 @@ require 'spec_helper' -describe 'Admin uses repository checks', :request_store, :clean_gitlab_redis_shared_state, :do_not_mock_admin_mode do +describe 'Admin uses repository checks' do include StubENV - let(:admin) { create(:admin) } - before do stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') - sign_in(admin) + sign_in(create(:admin)) end - context 'when admin mode is disabled' do - it 'admin project page requires admin mode' do - project = create(:project) - visit_admin_project_page(project) + it 'to trigger a single check' do + project = create(:project) + visit_admin_project_page(project) - expect(page).not_to have_css('.repository-check') - expect(page).to have_content('Enter Admin Mode') + page.within('.repository-check') do + click_button 'Trigger repository check' end - end - - context 'when admin mode is enabled' do - before do - gitlab_enable_admin_mode_sign_in(admin) - end - - it 'to trigger a single check', :js do - project = create(:project) - visit_admin_project_page(project) - page.within('.repository-check') do - click_button 'Trigger repository check' - end - - expect(page).to have_content('Repository check was triggered') - end + expect(page).to have_content('Repository check was triggered') + end - it 'to see a single failed repository check', :js do - project = create(:project) - project.update_columns( - last_repository_check_failed: true, - last_repository_check_at: Time.now - ) - visit_admin_project_page(project) + it 'to see a single failed repository check', :js do + project = create(:project) + project.update_columns( + last_repository_check_failed: true, + last_repository_check_at: Time.now + ) + visit_admin_project_page(project) - page.within('.alert') do - expect(page.text).to match(/Last repository check \(just now\) failed/) - end + page.within('.alert') do + expect(page.text).to match(/Last repository check \(just now\) failed/) end + end - it 'to clear all repository checks', :js do - visit repository_admin_application_settings_path + it 'to clear all repository checks', :js do + visit repository_admin_application_settings_path - expect(RepositoryCheck::ClearWorker).to receive(:perform_async) + expect(RepositoryCheck::ClearWorker).to receive(:perform_async) - accept_confirm { find(:link, 'Clear all repository checks').send_keys(:return) } + accept_confirm { find(:link, 'Clear all repository checks').send_keys(:return) } - expect(page).to have_content('Started asynchronous removal of all repository check states.') - end + expect(page).to have_content('Started asynchronous removal of all repository check states.') end def visit_admin_project_page(project) |