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/support/shared_contexts/features/integrations/project_integrations_shared_context.rb')
-rw-r--r--spec/support/shared_contexts/features/integrations/project_integrations_shared_context.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/support/shared_contexts/features/integrations/project_integrations_shared_context.rb b/spec/support/shared_contexts/features/integrations/project_integrations_shared_context.rb
new file mode 100644
index 00000000000..b10844320d0
--- /dev/null
+++ b/spec/support/shared_contexts/features/integrations/project_integrations_shared_context.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+
+RSpec.shared_context 'project service activation' do
+ include_context 'integration activation'
+
+ let(:project) { create(:project) }
+ let(:user) { create(:user) }
+
+ before do
+ project.add_maintainer(user)
+ sign_in(user)
+ end
+
+ def visit_project_integrations
+ visit project_settings_integrations_path(project)
+ end
+
+ def visit_project_integration(name)
+ visit_project_integrations
+
+ within('#content-body') do
+ click_link(name)
+ end
+ end
+
+ def click_save_integration
+ click_button('Save changes')
+ end
+
+ def click_test_integration
+ click_link('Test settings')
+ end
+
+ def click_test_then_save_integration(expect_test_to_fail: true)
+ click_test_integration
+
+ if expect_test_to_fail
+ expect(page).to have_content('Connection failed.')
+ else
+ expect(page).to have_content('Connection successful.')
+ end
+
+ click_save_integration
+ end
+end