diff options
Diffstat (limited to 'spec/features/admin')
-rw-r--r-- | spec/features/admin/admin_broadcast_messages_spec.rb | 7 | ||||
-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.rb | 292 | ||||
-rw-r--r-- | spec/features/admin/admin_sees_background_migrations_spec.rb | 10 | ||||
-rw-r--r-- | spec/features/admin/admin_settings_spec.rb | 93 | ||||
-rw-r--r-- | spec/features/admin/admin_users_impersonation_tokens_spec.rb | 4 | ||||
-rw-r--r-- | spec/features/admin/clusters/eks_spec.rb | 4 |
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 |