Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/admin')
-rw-r--r--spec/features/admin/admin_abuse_reports_spec.rb354
-rw-r--r--spec/features/admin/admin_hooks_spec.rb2
-rw-r--r--spec/features/admin/admin_jobs_spec.rb114
-rw-r--r--spec/features/admin/admin_mode/logout_spec.rb2
-rw-r--r--spec/features/admin/admin_mode/workers_spec.rb6
-rw-r--r--spec/features/admin/admin_mode_spec.rb2
-rw-r--r--spec/features/admin/admin_runners_spec.rb7
-rw-r--r--spec/features/admin/admin_sees_background_migrations_spec.rb2
-rw-r--r--spec/features/admin/admin_settings_spec.rb10
-rw-r--r--spec/features/admin/users/user_spec.rb10
-rw-r--r--spec/features/admin/users/users_spec.rb6
11 files changed, 189 insertions, 326 deletions
diff --git a/spec/features/admin/admin_abuse_reports_spec.rb b/spec/features/admin/admin_abuse_reports_spec.rb
index 18bc851558d..973988560b3 100644
--- a/spec/features/admin/admin_abuse_reports_spec.rb
+++ b/spec/features/admin/admin_abuse_reports_spec.rb
@@ -11,291 +11,195 @@ RSpec.describe "Admin::AbuseReports", :js, feature_category: :insider_threat do
let_it_be(:closed_report) { create(:abuse_report, :closed, user: user, category: 'spam') }
describe 'as an admin' do
+ include FilteredSearchHelpers
+
before do
sign_in(admin)
gitlab_enable_admin_mode_sign_in(admin)
- end
-
- context 'when abuse_reports_list feature flag is enabled' do
- include FilteredSearchHelpers
-
- before do
- visit admin_abuse_reports_path
- end
-
- let(:abuse_report_row_selector) { '[data-testid="abuse-report-row"]' }
-
- it 'only includes open reports by default' do
- expect_displayed_reports_count(2)
-
- expect_report_shown(open_report, open_report2)
-
- within '[data-testid="abuse-reports-filtered-search-bar"]' do
- expect(page).to have_content 'Status = Open'
- end
- end
-
- it 'can be filtered by status, user, reporter, and category', :aggregate_failures do
- # filter by status
- filter %w[Status Closed]
- expect_displayed_reports_count(1)
- expect_report_shown(closed_report)
- expect_report_not_shown(open_report, open_report2)
-
- filter %w[Status Open]
- expect_displayed_reports_count(2)
- expect_report_shown(open_report, open_report2)
- expect_report_not_shown(closed_report)
-
- # filter by user
- filter(['User', open_report2.user.username])
- expect_displayed_reports_count(1)
- expect_report_shown(open_report2)
- expect_report_not_shown(open_report, closed_report)
+ visit admin_abuse_reports_path
+ end
- # filter by reporter
- filter(['Reporter', open_report.reporter.username])
+ let(:abuse_report_row_selector) { '[data-testid="abuse-report-row"]' }
- expect_displayed_reports_count(1)
- expect_report_shown(open_report)
- expect_report_not_shown(open_report2, closed_report)
+ it 'only includes open reports by default' do
+ expect_displayed_reports_count(2)
- # filter by category
- filter(['Category', open_report2.category])
+ expect_report_shown(open_report, open_report2)
- expect_displayed_reports_count(1)
- expect_report_shown(open_report2)
- expect_report_not_shown(open_report, closed_report)
+ within_testid('abuse-reports-filtered-search-bar') do
+ expect(page).to have_content 'Status = Open'
end
+ end
- it 'can be sorted by created_at and updated_at in desc and asc order', :aggregate_failures do
- sort_by 'Created date'
- # created_at desc
- expect(report_rows[0].text).to include(report_text(open_report2))
- expect(report_rows[1].text).to include(report_text(open_report))
-
- # created_at asc
- toggle_sort_direction
-
- expect(report_rows[0].text).to include(report_text(open_report))
- expect(report_rows[1].text).to include(report_text(open_report2))
+ it 'can be filtered by status, user, reporter, and category', :aggregate_failures do
+ # filter by status
+ filter %w[Status Closed]
+ expect_displayed_reports_count(1)
+ expect_report_shown(closed_report)
+ expect_report_not_shown(open_report, open_report2)
- # updated_at asc
- sort_by 'Updated date'
+ filter %w[Status Open]
+ expect_displayed_reports_count(2)
+ expect_report_shown(open_report, open_report2)
+ expect_report_not_shown(closed_report)
- expect(report_rows[0].text).to include(report_text(open_report2))
- expect(report_rows[1].text).to include(report_text(open_report))
+ # filter by user
+ filter(['User', open_report2.user.username])
- # updated_at desc
- toggle_sort_direction
+ expect_displayed_reports_count(1)
+ expect_report_shown(open_report2)
+ expect_report_not_shown(open_report, closed_report)
- expect(report_rows[0].text).to include(report_text(open_report))
- expect(report_rows[1].text).to include(report_text(open_report2))
- end
+ # filter by reporter
+ filter(['Reporter', open_report.reporter.username])
- context 'when multiple reports for the same user are created' do
- let_it_be(:open_report3) { create(:abuse_report, category: 'spam', user: user) }
- let_it_be(:closed_report2) { create(:abuse_report, :closed, user: user, category: 'spam') }
+ expect_displayed_reports_count(1)
+ expect_report_shown(open_report)
+ expect_report_not_shown(open_report2, closed_report)
- it 'aggregates open reports by user & category', :aggregate_failures do
- expect_displayed_reports_count(2)
+ # filter by category
+ filter(['Category', open_report2.category])
- expect_aggregated_report_shown(open_report, 2)
- expect_report_shown(open_report2)
- end
+ expect_displayed_reports_count(1)
+ expect_report_shown(open_report2)
+ expect_report_not_shown(open_report, closed_report)
+ end
- it 'can sort aggregated reports by number_of_reports in desc order only', :aggregate_failures do
- sort_by 'Number of Reports'
+ it 'can be sorted by created_at and updated_at in desc and asc order', :aggregate_failures do
+ sort_by 'Created date'
+ # created_at desc
+ expect(report_rows[0].text).to include(report_text(open_report2))
+ expect(report_rows[1].text).to include(report_text(open_report))
- expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
- expect(report_rows[1].text).to include(report_text(open_report2))
+ # created_at asc
+ toggle_sort_direction
- toggle_sort_direction
+ expect(report_rows[0].text).to include(report_text(open_report))
+ expect(report_rows[1].text).to include(report_text(open_report2))
- expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
- expect(report_rows[1].text).to include(report_text(open_report2))
- end
+ # updated_at asc
+ sort_by 'Updated date'
- it 'can sort aggregated reports by created_at and updated_at in desc and asc order', :aggregate_failures do
- # number_of_reports desc (default)
- expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
- expect(report_rows[1].text).to include(report_text(open_report2))
+ expect(report_rows[0].text).to include(report_text(open_report2))
+ expect(report_rows[1].text).to include(report_text(open_report))
- # created_at desc
- sort_by 'Created date'
+ # updated_at desc
+ toggle_sort_direction
- expect(report_rows[0].text).to include(report_text(open_report2))
- expect(report_rows[1].text).to include(aggregated_report_text(open_report, 2))
-
- # created_at asc
- toggle_sort_direction
+ expect(report_rows[0].text).to include(report_text(open_report))
+ expect(report_rows[1].text).to include(report_text(open_report2))
+ end
- expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
- expect(report_rows[1].text).to include(report_text(open_report2))
+ context 'when multiple reports for the same user are created' do
+ let_it_be(:open_report3) { create(:abuse_report, category: 'spam', user: user) }
+ let_it_be(:closed_report2) { create(:abuse_report, :closed, user: user, category: 'spam') }
- sort_by 'Updated date'
+ it 'aggregates open reports by user & category', :aggregate_failures do
+ expect_displayed_reports_count(2)
- # updated_at asc
- expect(report_rows[0].text).to include(report_text(open_report2))
- expect(report_rows[1].text).to include(aggregated_report_text(open_report, 2))
+ expect_aggregated_report_shown(open_report, 2)
+ expect_report_shown(open_report2)
+ end
- # updated_at desc
- toggle_sort_direction
+ it 'can sort aggregated reports by number_of_reports in desc order only', :aggregate_failures do
+ sort_by 'Number of Reports'
- expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
- expect(report_rows[1].text).to include(report_text(open_report2))
- end
+ expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
+ expect(report_rows[1].text).to include(report_text(open_report2))
- it 'does not aggregate closed reports', :aggregate_failures do
- filter %w[Status Closed]
+ toggle_sort_direction
- expect_displayed_reports_count(2)
- expect_report_shown(closed_report, closed_report2)
- end
+ expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
+ expect(report_rows[1].text).to include(report_text(open_report2))
end
- def report_rows
- page.all(abuse_report_row_selector)
- end
+ it 'can sort aggregated reports by created_at and updated_at in desc and asc order', :aggregate_failures do
+ # number_of_reports desc (default)
+ expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
+ expect(report_rows[1].text).to include(report_text(open_report2))
- def report_text(report)
- "#{report.user.name} reported for #{report.category} by #{report.reporter.name}"
- end
+ # created_at desc
+ sort_by 'Created date'
- def aggregated_report_text(report, count)
- "#{report.user.name} reported for #{report.category} by #{count} users"
- end
+ expect(report_rows[0].text).to include(report_text(open_report2))
+ expect(report_rows[1].text).to include(aggregated_report_text(open_report, 2))
- def expect_report_shown(*reports)
- reports.each do |r|
- expect(page).to have_content(report_text(r))
- end
- end
+ # created_at asc
+ toggle_sort_direction
- def expect_report_not_shown(*reports)
- reports.each do |r|
- expect(page).not_to have_content(report_text(r))
- end
- end
+ expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
+ expect(report_rows[1].text).to include(report_text(open_report2))
- def expect_aggregated_report_shown(*reports, count)
- reports.each do |r|
- expect(page).to have_content(aggregated_report_text(r, count))
- end
- end
+ sort_by 'Updated date'
- def expect_displayed_reports_count(count)
- expect(page).to have_css(abuse_report_row_selector, count: count)
- end
+ # updated_at asc
+ expect(report_rows[0].text).to include(report_text(open_report2))
+ expect(report_rows[1].text).to include(aggregated_report_text(open_report, 2))
- def filter(tokens)
- # remove all existing filters first
- page.find_all('.gl-token-close').each(&:click)
+ # updated_at desc
+ toggle_sort_direction
- select_tokens(*tokens, submit: true, input_text: 'Filter reports')
+ expect(report_rows[0].text).to include(aggregated_report_text(open_report, 2))
+ expect(report_rows[1].text).to include(report_text(open_report2))
end
- def sort_by(sort)
- page.within('.vue-filtered-search-bar-container .sort-dropdown-container') do
- page.find('.gl-dropdown-toggle').click
+ it 'does not aggregate closed reports', :aggregate_failures do
+ filter %w[Status Closed]
- page.within('.dropdown-menu') do
- click_button sort
- wait_for_requests
- end
- end
+ expect_displayed_reports_count(2)
+ expect_report_shown(closed_report, closed_report2)
end
end
- context 'when abuse_reports_list feature flag is disabled' do
- before do
- stub_feature_flags(abuse_reports_list: false)
-
- visit admin_abuse_reports_path
- end
+ def report_rows
+ page.all(abuse_report_row_selector)
+ end
- it 'displays all abuse reports', :aggregate_failures do
- expect_report_shown(open_report)
- expect_report_actions_shown(open_report)
+ def report_text(report)
+ "#{report.user.name} reported for #{report.category} by #{report.reporter.name}"
+ end
- expect_report_shown(open_report2)
- expect_report_actions_shown(open_report2)
+ def aggregated_report_text(report, count)
+ "#{report.user.name} reported for #{report.category} by #{count} users"
+ end
- expect_report_shown(closed_report)
- expect_report_actions_shown(closed_report)
+ def expect_report_shown(*reports)
+ reports.each do |r|
+ expect(page).to have_content(report_text(r))
end
+ end
- context 'when an admin has been reported for abuse' do
- let_it_be(:admin_abuse_report) { create(:abuse_report, user: admin) }
-
- it 'displays the abuse report without actions' do
- expect_report_shown(admin_abuse_report)
- expect_report_actions_not_shown(admin_abuse_report)
- end
+ def expect_report_not_shown(*reports)
+ reports.each do |r|
+ expect(page).not_to have_content(report_text(r))
end
+ end
- context 'when multiple users have been reported for abuse' do
- let(:report_count) { AbuseReport.default_per_page + 3 }
-
- before do
- report_count.times do
- create(:abuse_report, user: create(:user))
- end
- end
-
- context 'in the abuse report view', :aggregate_failures do
- it 'adds pagination' do
- visit admin_abuse_reports_path
-
- expect(page).to have_selector('.pagination')
- expect(page).to have_selector('.pagination .js-pagination-page', count: (report_count.to_f / AbuseReport.default_per_page).ceil)
- end
- end
+ def expect_aggregated_report_shown(*reports, count)
+ reports.each do |r|
+ expect(page).to have_content(aggregated_report_text(r, count))
end
+ end
- context 'when filtering reports' do
- it 'can be filtered by reported-user', :aggregate_failures do
- visit admin_abuse_reports_path
-
- page.within '.filter-form' do
- click_button 'User'
- wait_for_requests
-
- page.within '.dropdown-menu-user' do
- click_link user.name
- end
-
- wait_for_requests
- end
+ def expect_displayed_reports_count(count)
+ expect(page).to have_css(abuse_report_row_selector, count: count)
+ end
- expect_report_shown(open_report)
- expect_report_shown(closed_report)
- end
- end
+ def filter(tokens)
+ # remove all existing filters first
+ page.find_all('.gl-token-close').each(&:click)
- def expect_report_shown(report)
- page.within(:table_row, { "User" => report.user.name, "Reported by" => report.reporter.name }) do
- expect(page).to have_content(report.user.name)
- expect(page).to have_content(report.reporter.name)
- expect(page).to have_content(report.message)
- expect(page).to have_link(report.user.name, href: user_path(report.user))
- end
- end
+ select_tokens(*tokens, submit: true, input_text: 'Filter reports')
+ end
- def expect_report_actions_shown(report)
- page.within(:table_row, { "User" => report.user.name, "Reported by" => report.reporter.name }) do
- expect(page).to have_link('Remove user & report')
- expect(page).to have_link('Block user')
- expect(page).to have_link('Remove user')
- end
- end
+ def sort_by(sort)
+ page.within('.vue-filtered-search-bar-container .sort-dropdown-container') do
+ page.find('.gl-dropdown-toggle').click
- def expect_report_actions_not_shown(report)
- page.within(:table_row, { "User" => report.user.name, "Reported by" => report.reporter.name }) do
- expect(page).not_to have_link('Remove user & report')
- expect(page).not_to have_link('Block user')
- expect(page).not_to have_link('Remove user')
+ page.within('.dropdown-menu') do
+ click_button sort
+ wait_for_requests
end
end
end
diff --git a/spec/features/admin/admin_hooks_spec.rb b/spec/features/admin/admin_hooks_spec.rb
index b4f64cbfa7b..a5acba1fe4a 100644
--- a/spec/features/admin/admin_hooks_spec.rb
+++ b/spec/features/admin/admin_hooks_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe 'Admin::Hooks', feature_category: :webhooks do
include Spec::Support::Helpers::ModalHelpers
- let_it_be(:user) { create(:admin) }
+ let_it_be(:user) { create(:admin, :no_super_sidebar) }
before do
sign_in(user)
diff --git a/spec/features/admin/admin_jobs_spec.rb b/spec/features/admin/admin_jobs_spec.rb
index d46b314c144..b305bec6493 100644
--- a/spec/features/admin/admin_jobs_spec.rb
+++ b/spec/features/admin/admin_jobs_spec.rb
@@ -2,9 +2,8 @@
require 'spec_helper'
-RSpec.describe 'Admin Jobs', feature_category: :continuous_integration do
+RSpec.describe 'Admin Jobs', :js, feature_category: :continuous_integration do
before do
- stub_feature_flags(admin_jobs_vue: false)
admin = create(:admin)
sign_in(admin)
gitlab_enable_admin_mode_sign_in(admin)
@@ -23,12 +22,13 @@ RSpec.describe 'Admin Jobs', feature_category: :continuous_integration do
visit admin_jobs_path
- expect(page).to have_selector('[data-testid="jobs-tabs"] a.active', text: 'All')
- expect(page).to have_selector('.row-content-block', text: 'All jobs')
- expect(page.all('.build-link').size).to eq(4)
- expect(page).to have_button 'Stop all jobs'
+ wait_for_requests
- click_button 'Stop all jobs'
+ expect(page).to have_selector('[data-testid="jobs-all-tab"]')
+ expect(page.all('[data-testid="jobs-table-row"]').size).to eq(4)
+ expect(page).to have_button 'Cancel all jobs'
+
+ click_button 'Cancel all jobs'
expect(page).to have_button 'Yes, proceed'
expect(page).to have_content 'Are you sure?'
end
@@ -38,73 +38,11 @@ RSpec.describe 'Admin Jobs', feature_category: :continuous_integration do
it 'shows a message' do
visit admin_jobs_path
- expect(page).to have_selector('[data-testid="jobs-tabs"] a.active', text: 'All')
- expect(page).to have_content 'No jobs to show'
- expect(page).not_to have_button 'Stop all jobs'
- end
- end
- end
-
- context 'Pending tab' do
- context 'when have pending jobs' do
- it 'shows pending jobs' do
- build1 = create(:ci_build, pipeline: pipeline, status: :pending)
- build2 = create(:ci_build, pipeline: pipeline, status: :running)
- build3 = create(:ci_build, pipeline: pipeline, status: :success)
- build4 = create(:ci_build, pipeline: pipeline, status: :failed)
-
- visit admin_jobs_path(scope: :pending)
-
- expect(page).to have_selector('[data-testid="jobs-tabs"] a.active', text: 'Pending')
- expect(page.find('.build-link')).to have_content(build1.id)
- expect(page.find('.build-link')).not_to have_content(build2.id)
- expect(page.find('.build-link')).not_to have_content(build3.id)
- expect(page.find('.build-link')).not_to have_content(build4.id)
- expect(page).to have_button 'Stop all jobs'
- end
- end
-
- context 'when have no jobs pending' do
- it 'shows a message' do
- create(:ci_build, pipeline: pipeline, status: :success)
-
- visit admin_jobs_path(scope: :pending)
-
- expect(page).to have_selector('[data-testid="jobs-tabs"] a.active', text: 'Pending')
- expect(page).to have_content 'No jobs to show'
- expect(page).not_to have_button 'Stop all jobs'
- end
- end
- end
-
- context 'Running tab' do
- context 'when have running jobs' do
- it 'shows running jobs' do
- build1 = create(:ci_build, pipeline: pipeline, status: :running)
- build2 = create(:ci_build, pipeline: pipeline, status: :success)
- build3 = create(:ci_build, pipeline: pipeline, status: :failed)
- build4 = create(:ci_build, pipeline: pipeline, status: :pending)
-
- visit admin_jobs_path(scope: :running)
-
- expect(page).to have_selector('[data-testid="jobs-tabs"] a.active', text: 'Running')
- expect(page.find('.build-link')).to have_content(build1.id)
- expect(page.find('.build-link')).not_to have_content(build2.id)
- expect(page.find('.build-link')).not_to have_content(build3.id)
- expect(page.find('.build-link')).not_to have_content(build4.id)
- expect(page).to have_button 'Stop all jobs'
- end
- end
-
- context 'when have no jobs running' do
- it 'shows a message' do
- create(:ci_build, pipeline: pipeline, status: :success)
-
- visit admin_jobs_path(scope: :running)
+ wait_for_requests
- expect(page).to have_selector('[data-testid="jobs-tabs"] a.active', text: 'Running')
- expect(page).to have_content 'No jobs to show'
- expect(page).not_to have_button 'Stop all jobs'
+ expect(page).to have_selector('[data-testid="jobs-all-tab"]')
+ expect(page).to have_selector('[data-testid="jobs-empty-state"]')
+ expect(page).not_to have_button 'Cancel all jobs'
end
end
end
@@ -116,13 +54,19 @@ RSpec.describe 'Admin Jobs', feature_category: :continuous_integration do
build2 = create(:ci_build, pipeline: pipeline, status: :running)
build3 = create(:ci_build, pipeline: pipeline, status: :success)
- visit admin_jobs_path(scope: :finished)
+ visit admin_jobs_path
+
+ wait_for_requests
+
+ find_by_testid('jobs-finished-tab').click
+
+ wait_for_requests
- expect(page).to have_selector('[data-testid="jobs-tabs"] a.active', text: 'Finished')
- expect(page.find('.build-link')).not_to have_content(build1.id)
- expect(page.find('.build-link')).not_to have_content(build2.id)
- expect(page.find('.build-link')).to have_content(build3.id)
- expect(page).to have_button 'Stop all jobs'
+ expect(page).to have_selector('[data-testid="jobs-finished-tab"]')
+ expect(find_by_testid('job-id-link')).not_to have_content(build1.id)
+ expect(find_by_testid('job-id-link')).not_to have_content(build2.id)
+ expect(find_by_testid('job-id-link')).to have_content(build3.id)
+ expect(page).to have_button 'Cancel all jobs'
end
end
@@ -130,11 +74,17 @@ RSpec.describe 'Admin Jobs', feature_category: :continuous_integration do
it 'shows a message' do
create(:ci_build, pipeline: pipeline, status: :running)
- visit admin_jobs_path(scope: :finished)
+ visit admin_jobs_path
+
+ wait_for_requests
+
+ find_by_testid('jobs-finished-tab').click
+
+ wait_for_requests
- expect(page).to have_selector('[data-testid="jobs-tabs"] a.active', text: 'Finished')
+ expect(page).to have_selector('[data-testid="jobs-finished-tab"]')
expect(page).to have_content 'No jobs to show'
- expect(page).to have_button 'Stop all jobs'
+ expect(page).to have_button 'Cancel all jobs'
end
end
end
diff --git a/spec/features/admin/admin_mode/logout_spec.rb b/spec/features/admin/admin_mode/logout_spec.rb
index a64d3f241f6..5d9106fea02 100644
--- a/spec/features/admin/admin_mode/logout_spec.rb
+++ b/spec/features/admin/admin_mode/logout_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe 'Admin Mode Logout', :js, feature_category: :system_access do
include UserLoginHelper
include Features::TopNavSpecHelpers
- let(:user) { create(:admin) }
+ let(:user) { create(:admin, :no_super_sidebar) }
before do
# TODO: This used to use gitlab_sign_in, instead of sign_in, but that is buggy. See
diff --git a/spec/features/admin/admin_mode/workers_spec.rb b/spec/features/admin/admin_mode/workers_spec.rb
index 124c43eef9d..2a862c750d7 100644
--- a/spec/features/admin/admin_mode/workers_spec.rb
+++ b/spec/features/admin/admin_mode/workers_spec.rb
@@ -6,8 +6,8 @@ require 'spec_helper'
RSpec.describe 'Admin mode for workers', :request_store, feature_category: :system_access do
include Features::AdminUsersHelpers
- let(:user) { create(:user) }
- let(:user_to_delete) { create(:user) }
+ let(:user) { create(:user, :no_super_sidebar) }
+ let(:user_to_delete) { create(:user, :no_super_sidebar) }
before do
sign_in(user)
@@ -22,7 +22,7 @@ RSpec.describe 'Admin mode for workers', :request_store, feature_category: :syst
end
context 'as an admin user' do
- let(:user) { create(:admin) }
+ let(:user) { create(:admin, :no_super_sidebar) }
context 'when admin mode disabled' do
it 'cannot delete user', :js do
diff --git a/spec/features/admin/admin_mode_spec.rb b/spec/features/admin/admin_mode_spec.rb
index 65249fa0235..edfa58567ad 100644
--- a/spec/features/admin/admin_mode_spec.rb
+++ b/spec/features/admin/admin_mode_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe 'Admin mode', :js, feature_category: :shared do
include Features::TopNavSpecHelpers
include StubENV
- let(:admin) { create(:admin) }
+ let(:admin) { create(:admin, :no_super_sidebar) }
before do
stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
diff --git a/spec/features/admin/admin_runners_spec.rb b/spec/features/admin/admin_runners_spec.rb
index af6ba318ac6..e0f4473c80c 100644
--- a/spec/features/admin/admin_runners_spec.rb
+++ b/spec/features/admin/admin_runners_spec.rb
@@ -54,6 +54,11 @@ RSpec.describe "Admin Runners", feature_category: :runner_fleet do
let(:runner) { instance_runner }
end
+ it_behaves_like 'shows runner details from list' do
+ let(:runner) { instance_runner }
+ let(:runner_page_path) { admin_runner_path(instance_runner) }
+ end
+
it_behaves_like 'pauses, resumes and deletes a runner' do
let(:runner) { instance_runner }
end
@@ -575,6 +580,8 @@ RSpec.describe "Admin Runners", feature_category: :runner_fleet do
let(:runner_page_path) { admin_runner_path(project_runner) }
end
+ it_behaves_like 'shows locked field'
+
describe 'breadcrumbs' do
it 'contains the current runner id and token' do
page.within '[data-testid="breadcrumb-links"]' do
diff --git a/spec/features/admin/admin_sees_background_migrations_spec.rb b/spec/features/admin/admin_sees_background_migrations_spec.rb
index 7d4d3deb6d8..7423e74bf3a 100644
--- a/spec/features/admin/admin_sees_background_migrations_spec.rb
+++ b/spec/features/admin/admin_sees_background_migrations_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe "Admin > Admin sees background migrations", feature_category: :database do
include ListboxHelpers
- let_it_be(:admin) { create(:admin) }
+ let_it_be(:admin) { create(:admin, :no_super_sidebar) }
let(:job_class) { Gitlab::BackgroundMigration::CopyColumnUsingBackgroundMigrationJob }
let_it_be(:active_migration) { create(:batched_background_migration, :active, table_name: 'active') }
diff --git a/spec/features/admin/admin_settings_spec.rb b/spec/features/admin/admin_settings_spec.rb
index b78d6777a1a..e87f47e5234 100644
--- a/spec/features/admin/admin_settings_spec.rb
+++ b/spec/features/admin/admin_settings_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe 'Admin updates settings', feature_category: :shared do
include TermsHelper
include UsageDataHelpers
- let_it_be(:admin) { create(:admin) }
+ let_it_be(:admin) { create(:admin, :no_super_sidebar) }
context 'application setting :admin_mode is enabled', :request_store do
before do
@@ -53,7 +53,7 @@ RSpec.describe 'Admin updates settings', feature_category: :shared do
it 'modify import sources' do
expect(current_settings.import_sources).to be_empty
- page.within('[data-testid="admin-visibility-access-settings"]') do
+ page.within('[data-testid="admin-import-export-settings"]') do
check "Repository by URL"
click_button 'Save changes'
end
@@ -63,7 +63,7 @@ RSpec.describe 'Admin updates settings', feature_category: :shared do
end
it 'change Visibility and Access Controls' do
- page.within('[data-testid="admin-visibility-access-settings"]') do
+ page.within('[data-testid="admin-import-export-settings"]') do
page.within('[data-testid="project-export"]') do
uncheck 'Enabled'
end
@@ -113,7 +113,7 @@ RSpec.describe 'Admin updates settings', feature_category: :shared do
end
it 'change Maximum export size' do
- page.within(find('[data-testid="account-limit"]')) do
+ page.within(find('[data-testid="admin-import-export-settings"]')) do
fill_in 'Maximum export size (MiB)', with: 25
click_button 'Save changes'
end
@@ -123,7 +123,7 @@ RSpec.describe 'Admin updates settings', feature_category: :shared do
end
it 'change Maximum import size' do
- page.within(find('[data-testid="account-limit"]')) do
+ page.within(find('[data-testid="admin-import-export-settings"]')) do
fill_in 'Maximum import size (MiB)', with: 15
click_button 'Save changes'
end
diff --git a/spec/features/admin/users/user_spec.rb b/spec/features/admin/users/user_spec.rb
index a95fd133133..7dc329e6909 100644
--- a/spec/features/admin/users/user_spec.rb
+++ b/spec/features/admin/users/user_spec.rb
@@ -6,8 +6,8 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management do
include Features::AdminUsersHelpers
include Spec::Support::Helpers::ModalHelpers
- let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') }
- let_it_be(:current_user) { create(:admin) }
+ let_it_be(:user) { create(:omniauth_user, :no_super_sidebar, provider: 'twitter', extern_uid: '123456') }
+ let_it_be(:current_user) { create(:admin, :no_super_sidebar) }
before do
sign_in(current_user)
@@ -145,7 +145,7 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management do
end
describe 'Impersonation' do
- let_it_be(:another_user) { create(:user) }
+ let_it_be(:another_user) { create(:user, :no_super_sidebar) }
context 'before impersonating' do
subject { visit admin_user_path(user_to_visit) }
@@ -156,7 +156,7 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management do
it 'disables impersonate button' do
subject
- impersonate_btn = find('[data-testid="impersonate_user_link"]')
+ impersonate_btn = find('[data-testid="impersonate-user-link"]')
expect(impersonate_btn).not_to be_nil
expect(impersonate_btn['disabled']).not_to be_nil
@@ -174,7 +174,7 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management do
subject
expect(page).to have_content('Impersonate')
- impersonate_btn = find('[data-testid="impersonate_user_link"]')
+ impersonate_btn = find('[data-testid="impersonate-user-link"]')
expect(impersonate_btn['disabled']).to be_nil
end
end
diff --git a/spec/features/admin/users/users_spec.rb b/spec/features/admin/users/users_spec.rb
index 8e80ce5edd9..8ee30c50a7d 100644
--- a/spec/features/admin/users/users_spec.rb
+++ b/spec/features/admin/users/users_spec.rb
@@ -350,7 +350,8 @@ RSpec.describe 'Admin::Users', feature_category: :user_management do
let_it_be(:ghost_user) { create(:user, :ghost) }
it 'does not render actions dropdown' do
- expect(page).not_to have_css("[data-testid='user-actions-#{ghost_user.id}'] [data-testid='dropdown-toggle']")
+ expect(page).not_to have_css(
+ "[data-testid='user-actions-#{ghost_user.id}'] [data-testid='user-actions-dropdown-toggle']")
end
end
@@ -358,7 +359,8 @@ RSpec.describe 'Admin::Users', feature_category: :user_management do
let_it_be(:bot_user) { create(:user, user_type: :alert_bot) }
it 'does not render actions dropdown' do
- expect(page).not_to have_css("[data-testid='user-actions-#{bot_user.id}'] [data-testid='dropdown-toggle']")
+ expect(page).not_to have_css(
+ "[data-testid='user-actions-#{bot_user.id}'] [data-testid='user-actions-dropdown-toggle']")
end
end
end