summaryrefslogtreecommitdiff
path: root/spec/features/projects/services/user_activates_alerts_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/projects/services/user_activates_alerts_spec.rb')
-rw-r--r--spec/features/projects/services/user_activates_alerts_spec.rb81
1 files changed, 81 insertions, 0 deletions
diff --git a/spec/features/projects/services/user_activates_alerts_spec.rb b/spec/features/projects/services/user_activates_alerts_spec.rb
new file mode 100644
index 00000000000..47de7fab859
--- /dev/null
+++ b/spec/features/projects/services/user_activates_alerts_spec.rb
@@ -0,0 +1,81 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe 'User activates Alerts', :js do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:user) { create(:user) }
+
+ let(:service_name) { 'alerts' }
+ let(:service_title) { 'Alerts endpoint' }
+
+ before do
+ sign_in(user)
+ project.add_maintainer(user)
+ end
+
+ context 'when service is deactivated' do
+ it 'activates service' do
+ visit_project_services
+
+ expect(page).to have_link(service_title)
+ click_link(service_title)
+
+ expect(page).not_to have_active_service
+
+ click_activate_service
+ wait_for_requests
+
+ expect(page).to have_active_service
+ end
+ end
+
+ context 'when service is activated' do
+ before do
+ visit_alerts_service
+ click_activate_service
+ end
+
+ it 're-generates key' do
+ expect(reset_key.value).to be_blank
+
+ click_reset_key
+ click_confirm_reset_key
+ wait_for_requests
+
+ expect(reset_key.value).to be_present
+ end
+ end
+
+ private
+
+ def visit_project_services
+ visit(project_settings_integrations_path(project))
+ end
+
+ def visit_alerts_service
+ visit(edit_project_service_path(project, service_name))
+ end
+
+ def click_activate_service
+ find('#activated').click
+ end
+
+ def click_reset_key
+ click_button('Reset key')
+ end
+
+ def click_confirm_reset_key
+ within '.modal-content' do
+ click_reset_key
+ end
+ end
+
+ def reset_key
+ find_field('Authorization key')
+ end
+
+ def have_active_service
+ have_selector('.js-service-active-status[data-value="true"]')
+ end
+end