diff options
Diffstat (limited to 'spec/features/alert_management/alert_management_list_spec.rb')
-rw-r--r-- | spec/features/alert_management/alert_management_list_spec.rb | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/spec/features/alert_management/alert_management_list_spec.rb b/spec/features/alert_management/alert_management_list_spec.rb index 37658f8c545..44ed2f3d60c 100644 --- a/spec/features/alert_management/alert_management_list_spec.rb +++ b/spec/features/alert_management/alert_management_list_spec.rb @@ -5,54 +5,54 @@ require 'spec_helper' RSpec.describe 'Alert Management index', :js do let_it_be(:project) { create(:project) } let_it_be(:developer) { create(:user) } - let_it_be(:alert) { create(:alert_management_alert, project: project, status: 'triggered') } before_all do project.add_developer(developer) end - before do - sign_in(developer) + context 'when a developer displays the alert list' do + before do + sign_in(developer) - visit project_alert_management_index_path(project) - wait_for_requests - end - - context 'when a developer displays the alert list and alert integrations are not enabled' do - it 'shows the alert page title' do - expect(page).to have_content('Alerts') + visit project_alert_management_index_path(project) + wait_for_requests end - it 'shows the empty state by default' do + it 'shows the alert page title and empty state without filtered search or alert table' do + expect(page).to have_content('Alerts') expect(page).to have_content('Surface alerts in GitLab') - end - - it 'does not show the filtered search' do + expect(page).not_to have_selector('.gl-table') page.within('.layout-page') do expect(page).not_to have_css('[data-testid="search-icon"]') end end - it 'does not show the alert table' do - expect(page).not_to have_selector('.gl-table') + shared_examples 'alert page with title, filtered search, and table' do + it 'renders correctly' do + expect(page).to have_content('Alerts') + expect(page).to have_selector('.gl-table') + page.within('.layout-page') do + expect(page).to have_css('[data-testid="search-icon"]') + end + end end - end - context 'when a developer displays the alert list and an HTTP integration is enabled' do - let_it_be(:integration) { create(:alert_management_http_integration, project: project) } + context 'when alerts have already been created' do + let_it_be(:alert) { create(:alert_management_alert, project: project) } - it 'shows the alert page title' do - expect(page).to have_content('Alerts') + it_behaves_like 'alert page with title, filtered search, and table' end - it 'shows the filtered search' do - page.within('.layout-page') do - expect(page).to have_css('[data-testid="search-icon"]') - end + context 'when an HTTP integration is enabled' do + let_it_be(:integration) { create(:alert_management_http_integration, project: project) } + + it_behaves_like 'alert page with title, filtered search, and table' end - it 'shows the alert table' do - expect(page).to have_selector('.gl-table') + context 'when the prometheus integration is enabled' do + let_it_be(:integration) { create(:prometheus_service, project: project) } + + it_behaves_like 'alert page with title, filtered search, and table' end end end |