diff options
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.rb | 45 |
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 |