summaryrefslogtreecommitdiff
path: root/spec/features/admin
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/admin')
-rw-r--r--spec/features/admin/admin_broadcast_messages_spec.rb7
-rw-r--r--spec/features/admin/admin_dev_ops_reports_spec.rb (renamed from spec/features/admin/admin_dev_ops_report_spec.rb)10
-rw-r--r--spec/features/admin/admin_runners_spec.rb292
-rw-r--r--spec/features/admin/admin_sees_background_migrations_spec.rb10
-rw-r--r--spec/features/admin/admin_settings_spec.rb93
-rw-r--r--spec/features/admin/admin_users_impersonation_tokens_spec.rb4
-rw-r--r--spec/features/admin/clusters/eks_spec.rb4
7 files changed, 189 insertions, 231 deletions
diff --git a/spec/features/admin/admin_broadcast_messages_spec.rb b/spec/features/admin/admin_broadcast_messages_spec.rb
index e40f4c4678c..875eb9dd0ce 100644
--- a/spec/features/admin/admin_broadcast_messages_spec.rb
+++ b/spec/features/admin/admin_broadcast_messages_spec.rb
@@ -22,9 +22,8 @@ RSpec.describe 'Admin Broadcast Messages' do
it 'creates a customized broadcast banner message' do
fill_in 'broadcast_message_message', with: 'Application update from **4:00 CST to 5:00 CST**'
- fill_in 'broadcast_message_color', with: '#f2dede'
fill_in 'broadcast_message_target_path', with: '*/user_onboarded'
- fill_in 'broadcast_message_font', with: '#b94a48'
+ select 'light-indigo', from: 'broadcast_message_theme'
select Date.today.next_year.year, from: 'broadcast_message_ends_at_1i'
check 'Guest'
check 'Owner'
@@ -35,7 +34,7 @@ RSpec.describe 'Admin Broadcast Messages' do
expect(page).to have_content 'Guest, Owner'
expect(page).to have_content '*/user_onboarded'
expect(page).to have_selector 'strong', text: '4:00 CST to 5:00 CST'
- expect(page).to have_selector %(div[style="background-color: #f2dede; color: #b94a48"])
+ expect(page).to have_selector %(.light-indigo[role=alert])
end
it 'creates a customized broadcast notification message' do
@@ -90,7 +89,7 @@ RSpec.describe 'Admin Broadcast Messages' do
fill_in 'broadcast_message_message', with: "Live **Markdown** previews. :tada:"
select 'Notification', from: 'broadcast_message_broadcast_type'
- page.within('.js-broadcast-notification-message-preview') do
+ page.within('#broadcast-message-preview') do
expect(page).to have_selector('strong', text: 'Markdown')
expect(page).to have_emoji('tada')
end
diff --git a/spec/features/admin/admin_dev_ops_report_spec.rb b/spec/features/admin/admin_dev_ops_reports_spec.rb
index cee79f8f440..bf32819cb52 100644
--- a/spec/features/admin/admin_dev_ops_report_spec.rb
+++ b/spec/features/admin/admin_dev_ops_reports_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe 'DevOps Report page', :js do
end
it 'has dismissable intro callout' do
- visit admin_dev_ops_report_path
+ visit admin_dev_ops_reports_path
expect(page).to have_content 'Introducing Your DevOps Report'
@@ -32,13 +32,13 @@ RSpec.describe 'DevOps Report page', :js do
end
it 'shows empty state' do
- visit admin_dev_ops_report_path
+ visit admin_dev_ops_reports_path
expect(page).to have_text('Service ping is off')
end
it 'hides the intro callout' do
- visit admin_dev_ops_report_path
+ visit admin_dev_ops_reports_path
expect(page).not_to have_content 'Introducing Your DevOps Report'
end
@@ -48,7 +48,7 @@ RSpec.describe 'DevOps Report page', :js do
it 'shows empty state' do
stub_application_setting(usage_ping_enabled: true)
- visit admin_dev_ops_report_path
+ visit admin_dev_ops_reports_path
expect(page).to have_content('Data is still calculating')
end
@@ -59,7 +59,7 @@ RSpec.describe 'DevOps Report page', :js do
stub_application_setting(usage_ping_enabled: true)
create(:dev_ops_report_metric)
- visit admin_dev_ops_report_path
+ visit admin_dev_ops_reports_path
expect(page).to have_selector('[data-testid="devops-score-app"]')
end
diff --git a/spec/features/admin/admin_runners_spec.rb b/spec/features/admin/admin_runners_spec.rb
index 3f0c7e64a1f..7fe49c2571c 100644
--- a/spec/features/admin/admin_runners_spec.rb
+++ b/spec/features/admin/admin_runners_spec.rb
@@ -3,65 +3,71 @@
require 'spec_helper'
RSpec.describe "Admin Runners" do
- include StubENV
- include Spec::Support::Helpers::ModalHelpers
+ include Spec::Support::Helpers::Features::RunnersHelpers
+
+ let_it_be(:admin) { create(:admin) }
before do
- stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
- admin = create(:admin)
sign_in(admin)
gitlab_enable_admin_mode_sign_in(admin)
wait_for_requests
end
- describe "Runners page", :js do
+ describe "Admin Runners page", :js do
let_it_be(:user) { create(:user) }
let_it_be(:group) { create(:group) }
let_it_be(:namespace) { create(:namespace) }
let_it_be(:project) { create(:project, namespace: namespace, creator: user) }
- context "when there are runners" do
- it 'has all necessary texts' do
- create(:ci_runner, :instance, created_at: 1.year.ago, contacted_at: Time.zone.now)
- create(:ci_runner, :instance, created_at: 1.year.ago, contacted_at: 1.week.ago)
- create(:ci_runner, :instance, created_at: 1.year.ago, contacted_at: 1.year.ago)
-
+ context "runners registration" do
+ before do
visit admin_runners_path
-
- expect(page).to have_text "Register an instance runner"
- expect(page).to have_text "Online runners 1"
- expect(page).to have_text "Offline runners 2"
- expect(page).to have_text "Stale runners 1"
end
- it 'with an instance runner shows an instance badge' do
- runner = create(:ci_runner, :instance)
+ it_behaves_like "shows and resets runner registration token" do
+ let(:dropdown_text) { 'Register an instance runner' }
+ let(:registration_token) { Gitlab::CurrentSettings.runners_registration_token }
+ end
+ end
- visit admin_runners_path
+ context "when there are runners" do
+ context "with an instance runner" do
+ let!(:instance_runner) { create(:ci_runner, :instance) }
- within "[data-testid='runner-row-#{runner.id}']" do
- expect(page).to have_selector '.badge', text: 'shared'
+ before do
+ visit admin_runners_path
end
- end
- it 'with a group runner shows a group badge' do
- runner = create(:ci_runner, :group, groups: [group])
+ it_behaves_like 'shows runner in list' do
+ let(:runner) { instance_runner }
+ end
- visit admin_runners_path
+ it_behaves_like 'pauses, resumes and deletes a runner' do
+ let(:runner) { instance_runner }
+ end
- within "[data-testid='runner-row-#{runner.id}']" do
- expect(page).to have_selector '.badge', text: 'group'
+ it 'shows an instance badge' do
+ within_runner_row(instance_runner.id) do
+ expect(page).to have_selector '.badge', text: 'shared'
+ end
end
end
- it 'with a project runner shows a project badge' do
- runner = create(:ci_runner, :project, projects: [project])
+ context "with multiple runners" do
+ before do
+ create(:ci_runner, :instance, created_at: 1.year.ago, contacted_at: Time.zone.now)
+ create(:ci_runner, :instance, created_at: 1.year.ago, contacted_at: 1.week.ago)
+ create(:ci_runner, :instance, created_at: 1.year.ago, contacted_at: 1.year.ago)
- visit admin_runners_path
+ visit admin_runners_path
+ end
- within "[data-testid='runner-row-#{runner.id}']" do
- expect(page).to have_selector '.badge', text: 'specific'
+ it 'has all necessary texts' do
+ expect(page).to have_text "Register an instance runner"
+ expect(page).to have_text "Online runners 1"
+ expect(page).to have_text "Offline runners 2"
+ expect(page).to have_text "Stale runners 1"
end
end
@@ -73,44 +79,8 @@ RSpec.describe "Admin Runners" do
visit admin_runners_path
- within "[data-testid='runner-row-#{runner.id}'] [data-label='Jobs']" do
- expect(page).to have_content '2'
- end
- end
-
- describe 'delete runner' do
- let!(:runner) { create(:ci_runner, description: 'runner-foo') }
-
- before do
- visit admin_runners_path
-
- within "[data-testid='runner-row-#{runner.id}']" do
- click_on 'Delete runner'
- end
- end
-
- it 'shows a confirmation modal' do
- expect(page).to have_text "Delete runner ##{runner.id} (#{runner.short_sha})?"
- expect(page).to have_text "Are you sure you want to continue?"
- end
-
- it 'deletes a runner' do
- within '.modal' do
- click_on 'Delete runner'
- end
-
- expect(page.find('.gl-toast')).to have_text(/Runner .+ deleted/)
- expect(page).not_to have_content 'runner-foo'
- end
-
- it 'cancels runner deletion' do
- within '.modal' do
- click_on 'Cancel'
- end
-
- wait_for_requests
-
- expect(page).to have_content 'runner-foo'
+ within_runner_row(runner.id) do
+ expect(find("[data-label='Jobs']")).to have_content '2'
end
end
@@ -154,35 +124,69 @@ RSpec.describe "Admin Runners" do
end
end
+ describe 'filter by paused' do
+ before do
+ create(:ci_runner, :instance, description: 'runner-active')
+ create(:ci_runner, :instance, description: 'runner-paused', active: false)
+
+ visit admin_runners_path
+ end
+
+ it 'shows all runners' do
+ expect(page).to have_link('All 2')
+
+ expect(page).to have_content 'runner-active'
+ expect(page).to have_content 'runner-paused'
+ end
+
+ it 'shows paused runners' do
+ input_filtered_search_filter_is_only('Paused', 'Yes')
+
+ expect(page).to have_link('All 1')
+
+ expect(page).not_to have_content 'runner-active'
+ expect(page).to have_content 'runner-paused'
+ end
+
+ it 'shows active runners' do
+ input_filtered_search_filter_is_only('Paused', 'No')
+
+ expect(page).to have_link('All 1')
+
+ expect(page).to have_content 'runner-active'
+ expect(page).not_to have_content 'runner-paused'
+ end
+ end
+
describe 'filter by status' do
let!(:never_contacted) { create(:ci_runner, :instance, description: 'runner-never-contacted', contacted_at: nil) }
before do
create(:ci_runner, :instance, description: 'runner-1', contacted_at: Time.zone.now)
create(:ci_runner, :instance, description: 'runner-2', contacted_at: Time.zone.now)
- create(:ci_runner, :instance, description: 'runner-paused', active: false, contacted_at: Time.zone.now)
+ create(:ci_runner, :instance, description: 'runner-offline', contacted_at: 1.week.ago)
visit admin_runners_path
end
it 'shows all runners' do
+ expect(page).to have_link('All 4')
+
expect(page).to have_content 'runner-1'
expect(page).to have_content 'runner-2'
- expect(page).to have_content 'runner-paused'
+ expect(page).to have_content 'runner-offline'
expect(page).to have_content 'runner-never-contacted'
-
- expect(page).to have_link('All 4')
end
it 'shows correct runner when status matches' do
- input_filtered_search_filter_is_only('Status', 'Active')
+ input_filtered_search_filter_is_only('Status', 'Online')
- expect(page).to have_link('All 3')
+ expect(page).to have_link('All 2')
expect(page).to have_content 'runner-1'
expect(page).to have_content 'runner-2'
- expect(page).to have_content 'runner-never-contacted'
- expect(page).not_to have_content 'runner-paused'
+ expect(page).not_to have_content 'runner-offline'
+ expect(page).not_to have_content 'runner-never-contacted'
end
it 'shows no runner when status does not match' do
@@ -194,15 +198,15 @@ RSpec.describe "Admin Runners" do
end
it 'shows correct runner when status is selected and search term is entered' do
- input_filtered_search_filter_is_only('Status', 'Active')
+ input_filtered_search_filter_is_only('Status', 'Online')
input_filtered_search_keys('runner-1')
expect(page).to have_link('All 1')
expect(page).to have_content 'runner-1'
expect(page).not_to have_content 'runner-2'
+ expect(page).not_to have_content 'runner-offline'
expect(page).not_to have_content 'runner-never-contacted'
- expect(page).not_to have_content 'runner-paused'
end
it 'shows correct runner when status filter is entered' do
@@ -216,7 +220,7 @@ RSpec.describe "Admin Runners" do
expect(page).not_to have_content 'runner-paused'
expect(page).to have_content 'runner-never-contacted'
- within "[data-testid='runner-row-#{never_contacted.id}']" do
+ within_runner_row(never_contacted.id) do
expect(page).to have_selector '.badge', text: 'never contacted'
end
end
@@ -308,7 +312,7 @@ RSpec.describe "Admin Runners" do
visit admin_runners_path
- input_filtered_search_filter_is_only('Status', 'Active')
+ input_filtered_search_filter_is_only('Paused', 'No')
expect(page).to have_content 'runner-project'
expect(page).to have_content 'runner-group'
@@ -330,6 +334,17 @@ RSpec.describe "Admin Runners" do
create(:ci_runner, :instance, description: 'runner-red', tag_list: ['red'])
end
+ it 'shows tags suggestions' do
+ visit admin_runners_path
+
+ open_filtered_search_suggestions('Tags')
+
+ page.within(search_bar_selector) do
+ expect(page).to have_content 'blue'
+ expect(page).to have_content 'red'
+ end
+ end
+
it 'shows correct runner when tag matches' do
visit admin_runners_path
@@ -403,15 +418,7 @@ RSpec.describe "Admin Runners" do
visit admin_runners_path
end
- it 'has all necessary texts including no runner message' do
- expect(page).to have_text "Register an instance runner"
-
- expect(page).to have_text "Online runners 0"
- expect(page).to have_text "Offline runners 0"
- expect(page).to have_text "Stale runners 0"
-
- expect(page).to have_text 'No runners found'
- end
+ it_behaves_like "shows no runners"
it 'shows tabs with total counts equal to 0' do
expect(page).to have_link('All 0')
@@ -427,65 +434,17 @@ RSpec.describe "Admin Runners" do
expect(page).to have_current_path(admin_runners_path('status[]': 'NEVER_CONTACTED') )
end
- end
- describe 'runners registration' do
- let!(:token) { Gitlab::CurrentSettings.runners_registration_token }
-
- before do
- visit admin_runners_path
+ it 'updates ACTIVE runner status to paused=false' do
+ visit admin_runners_path('status[]': 'ACTIVE')
- click_on 'Register an instance runner'
+ expect(page).to have_current_path(admin_runners_path('paused[]': 'false') )
end
- describe 'show registration instructions' do
- before do
- click_on 'Show runner installation and registration instructions'
-
- wait_for_requests
- end
-
- it 'opens runner installation modal' do
- expect(page).to have_text "Install a runner"
-
- expect(page).to have_text "Environment"
- expect(page).to have_text "Architecture"
- expect(page).to have_text "Download and install binary"
- end
-
- it 'dismisses runner installation modal' do
- within_modal do
- click_button('Close', match: :first)
- end
-
- expect(page).not_to have_text "Install a runner"
- end
- end
+ it 'updates PAUSED runner status to paused=true' do
+ visit admin_runners_path('status[]': 'PAUSED')
- it 'has a registration token' do
- click_on 'Click to reveal'
- expect(page.find('[data-testid="token-value"]')).to have_content(token)
- end
-
- describe 'reset registration token' do
- let(:page_token) { find('[data-testid="token-value"]').text }
-
- before do
- click_on 'Reset registration token'
-
- within_modal do
- click_button('Reset token', match: :first)
- end
-
- wait_for_requests
- end
-
- it 'changes registration token' do
- click_on 'Register an instance runner'
-
- click_on 'Click to reveal'
- expect(page_token).not_to eq token
- end
+ expect(page).to have_current_path(admin_runners_path('paused[]': 'true') )
end
end
end
@@ -637,47 +596,4 @@ RSpec.describe "Admin Runners" do
end
end
end
-
- private
-
- def search_bar_selector
- '[data-testid="runners-filtered-search"]'
- end
-
- # The filters must be clicked first to be able to receive events
- # See: https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1493
- def focus_filtered_search
- page.within(search_bar_selector) do
- page.find('.gl-filtered-search-term-token').click
- end
- end
-
- def input_filtered_search_keys(search_term)
- focus_filtered_search
-
- page.within(search_bar_selector) do
- page.find('input').send_keys(search_term)
- click_on 'Search'
- end
-
- wait_for_requests
- end
-
- def input_filtered_search_filter_is_only(filter, value)
- focus_filtered_search
-
- page.within(search_bar_selector) do
- click_on filter
-
- # For OPERATOR_IS_ONLY, clicking the filter
- # immediately preselects "=" operator
-
- page.find('input').send_keys(value)
- page.find('input').send_keys(:enter)
-
- click_on 'Search'
- end
-
- wait_for_requests
- end
end
diff --git a/spec/features/admin/admin_sees_background_migrations_spec.rb b/spec/features/admin/admin_sees_background_migrations_spec.rb
index d05a09a79ef..432721d63ad 100644
--- a/spec/features/admin/admin_sees_background_migrations_spec.rb
+++ b/spec/features/admin/admin_sees_background_migrations_spec.rb
@@ -5,9 +5,9 @@ require 'spec_helper'
RSpec.describe "Admin > Admin sees background migrations" do
let_it_be(:admin) { create(:admin) }
- let_it_be(:active_migration) { create(:batched_background_migration, table_name: 'active', status: :active) }
- let_it_be(:failed_migration) { create(:batched_background_migration, table_name: 'failed', status: :failed, total_tuple_count: 100) }
- let_it_be(:finished_migration) { create(:batched_background_migration, table_name: 'finished', status: :finished) }
+ let_it_be(:active_migration) { create(:batched_background_migration, :active, table_name: 'active') }
+ let_it_be(:failed_migration) { create(:batched_background_migration, :failed, table_name: 'failed', total_tuple_count: 100) }
+ let_it_be(:finished_migration) { create(:batched_background_migration, :finished, table_name: 'finished') }
before_all do
create(:batched_background_migration_job, :failed, batched_migration: failed_migration, batch_size: 10, min_value: 6, max_value: 15, attempts: 3)
@@ -81,7 +81,7 @@ RSpec.describe "Admin > Admin sees background migrations" do
expect(page).to have_content(failed_migration.job_class_name)
expect(page).to have_content(failed_migration.table_name)
expect(page).to have_content('0.00%')
- expect(page).to have_content(failed_migration.status.humanize)
+ expect(page).to have_content(failed_migration.status_name.to_s)
click_button('Retry')
expect(page).not_to have_content(failed_migration.job_class_name)
@@ -106,7 +106,7 @@ RSpec.describe "Admin > Admin sees background migrations" do
expect(page).to have_content(finished_migration.job_class_name)
expect(page).to have_content(finished_migration.table_name)
expect(page).to have_content('100.00%')
- expect(page).to have_content(finished_migration.status.humanize)
+ expect(page).to have_content(finished_migration.status_name.to_s)
end
end
end
diff --git a/spec/features/admin/admin_settings_spec.rb b/spec/features/admin/admin_settings_spec.rb
index df93bd773a6..4cdc3df978d 100644
--- a/spec/features/admin/admin_settings_spec.rb
+++ b/spec/features/admin/admin_settings_spec.rb
@@ -34,16 +34,16 @@ RSpec.describe 'Admin updates settings' do
it 'uncheck all restricted visibility levels' do
page.within('.as-visibility-access') do
- find('#application_setting_visibility_level_0').set(false)
- find('#application_setting_visibility_level_10').set(false)
- find('#application_setting_visibility_level_20').set(false)
+ find('#application_setting_restricted_visibility_levels_0').set(false)
+ find('#application_setting_restricted_visibility_levels_10').set(false)
+ find('#application_setting_restricted_visibility_levels_20').set(false)
click_button 'Save changes'
end
expect(page).to have_content "Application settings saved successfully"
- expect(find('#application_setting_visibility_level_0')).not_to be_checked
- expect(find('#application_setting_visibility_level_10')).not_to be_checked
- expect(find('#application_setting_visibility_level_20')).not_to be_checked
+ expect(find('#application_setting_restricted_visibility_levels_0')).not_to be_checked
+ expect(find('#application_setting_restricted_visibility_levels_10')).not_to be_checked
+ expect(find('#application_setting_restricted_visibility_levels_20')).not_to be_checked
end
it 'modify import sources' do
@@ -311,7 +311,9 @@ RSpec.describe 'Admin updates settings' do
end
context 'CI/CD page' do
- it 'change CI/CD settings' do
+ let_it_be(:default_plan) { create(:default_plan) }
+
+ it 'changes CI/CD settings' do
visit ci_cd_admin_application_settings_path
page.within('.as-ci-cd') do
@@ -329,6 +331,33 @@ RSpec.describe 'Admin updates settings' do
expect(page).to have_content "Application settings saved successfully"
end
+ it 'changes CI/CD limits', :aggregate_failures do
+ visit ci_cd_admin_application_settings_path
+
+ page.within('.as-ci-cd') do
+ fill_in 'plan_limits_ci_pipeline_size', with: 10
+ fill_in 'plan_limits_ci_active_jobs', with: 20
+ fill_in 'plan_limits_ci_active_pipelines', with: 25
+ fill_in 'plan_limits_ci_project_subscriptions', with: 30
+ fill_in 'plan_limits_ci_pipeline_schedules', with: 40
+ fill_in 'plan_limits_ci_needs_size_limit', with: 50
+ fill_in 'plan_limits_ci_registered_group_runners', with: 60
+ fill_in 'plan_limits_ci_registered_project_runners', with: 70
+ click_button 'Save Default limits'
+ end
+
+ limits = default_plan.reload.limits
+ expect(limits.ci_pipeline_size).to eq(10)
+ expect(limits.ci_active_jobs).to eq(20)
+ expect(limits.ci_active_pipelines).to eq(25)
+ expect(limits.ci_project_subscriptions).to eq(30)
+ expect(limits.ci_pipeline_schedules).to eq(40)
+ expect(limits.ci_needs_size_limit).to eq(50)
+ expect(limits.ci_registered_group_runners).to eq(60)
+ expect(limits.ci_registered_project_runners).to eq(70)
+ expect(page).to have_content 'Application limits saved successfully'
+ end
+
context 'Runner Registration' do
context 'when feature is enabled' do
before do
@@ -421,7 +450,7 @@ RSpec.describe 'Admin updates settings' do
visit ci_cd_admin_application_settings_path
page.within('.as-registry') do
- find('#application_setting_container_registry_expiration_policies_caching.form-check-input').click
+ find('#application_setting_container_registry_expiration_policies_caching').click
click_button 'Save changes'
end
@@ -489,8 +518,8 @@ RSpec.describe 'Admin updates settings' do
page.within('.as-spam') do
fill_in 'reCAPTCHA site key', with: 'key'
fill_in 'reCAPTCHA private key', with: 'key'
- check 'Enable reCAPTCHA'
- check 'Enable reCAPTCHA for login'
+ find('#application_setting_recaptcha_enabled').set(true)
+ find('#application_setting_login_recaptcha_protection_enabled').set(true)
fill_in 'IP addresses per user', with: 15
check 'Enable Spam Check via external API endpoint'
fill_in 'URL of the external Spam Check endpoint', with: 'grpc://www.example.com/spamcheck'
@@ -825,31 +854,45 @@ RSpec.describe 'Admin updates settings' do
before do
stub_usage_data_connections
stub_database_flavor_check
-
- visit service_usage_data_admin_application_settings_path
end
- it 'loads usage ping payload on click', :js do
- expected_payload_content = /(?=.*"uuid")(?=.*"hostname")/m
+ context 'when service data cached', :clean_gitlab_redis_cache do
+ before do
+ allow(Rails.cache).to receive(:exist?).with('usage_data').and_return(true)
- expect(page).not_to have_content expected_payload_content
+ visit service_usage_data_admin_application_settings_path
+ end
- click_button('Preview payload')
+ it 'loads usage ping payload on click', :js do
+ expected_payload_content = /(?=.*"uuid")(?=.*"hostname")/m
- wait_for_requests
+ expect(page).not_to have_content expected_payload_content
- expect(page).to have_button 'Hide payload'
- expect(page).to have_content expected_payload_content
- end
+ click_button('Preview payload')
- it 'generates usage ping payload on button click', :js do
- expect_next_instance_of(Admin::ApplicationSettingsController) do |instance|
- expect(instance).to receive(:usage_data).and_call_original
+ wait_for_requests
+
+ expect(page).to have_button 'Hide payload'
+ expect(page).to have_content expected_payload_content
+ end
+
+ it 'generates usage ping payload on button click', :js do
+ expect_next_instance_of(Admin::ApplicationSettingsController) do |instance|
+ expect(instance).to receive(:usage_data).and_call_original
+ end
+
+ click_button('Download payload')
+
+ wait_for_requests
end
+ end
- click_button('Download payload')
+ context 'when service data not cached' do
+ it 'renders missing cache information' do
+ visit service_usage_data_admin_application_settings_path
- wait_for_requests
+ expect(page).to have_text('Service Ping payload not found in the application cache')
+ end
end
end
end
diff --git a/spec/features/admin/admin_users_impersonation_tokens_spec.rb b/spec/features/admin/admin_users_impersonation_tokens_spec.rb
index 6643ebe82e6..15bc2318022 100644
--- a/spec/features/admin/admin_users_impersonation_tokens_spec.rb
+++ b/spec/features/admin/admin_users_impersonation_tokens_spec.rb
@@ -36,14 +36,14 @@ RSpec.describe 'Admin > Users > Impersonation Tokens', :js do
click_on "1"
# Scopes
- check "api"
+ check "read_api"
check "read_user"
click_on "Create impersonation token"
expect(active_impersonation_tokens).to have_text(name)
expect(active_impersonation_tokens).to have_text('in')
- expect(active_impersonation_tokens).to have_text('api')
+ expect(active_impersonation_tokens).to have_text('read_api')
expect(active_impersonation_tokens).to have_text('read_user')
expect(PersonalAccessTokensFinder.new(impersonation: true).execute.count).to equal(1)
expect(created_impersonation_token).not_to be_empty
diff --git a/spec/features/admin/clusters/eks_spec.rb b/spec/features/admin/clusters/eks_spec.rb
index 71d2bba73b1..4667f9c20a1 100644
--- a/spec/features/admin/clusters/eks_spec.rb
+++ b/spec/features/admin/clusters/eks_spec.rb
@@ -15,8 +15,8 @@ RSpec.describe 'Instance-level AWS EKS Cluster', :js do
before do
visit admin_clusters_path
- click_button 'Actions'
- click_link 'Create a new cluster'
+ click_button(class: 'dropdown-toggle-split')
+ click_link 'Create a cluster (deprecated)'
end
context 'when user creates a cluster on AWS EKS' do