diff --git a/app/controllers/concerns/integrations/params.rb b/app/controllers/concerns/integrations/params.rb index 5e1e7688e69d98bcd1132acac6c57d07b0756614..bfe5855b8f2e59dd5c8224f8add2648eb44fbbc7 100644 --- a/app/controllers/concerns/integrations/params.rb +++ b/app/controllers/concerns/integrations/params.rb @@ -43,6 +43,7 @@ module Params :diffblue_license_key, :drone_url, :enable_ssl_verification, + :exclude_service_accounts, :external_wiki_url, :google_iap_service_account_json, :google_iap_audience_client_id, diff --git a/spec/features/integrations_settings_spec.rb b/spec/features/integrations_settings_spec.rb index f460e051516362fcbc7b19b505ee56ff171d1948..85db2e87d4cb695117e9e47658952a9f24a0d5ab 100644 --- a/spec/features/integrations_settings_spec.rb +++ b/spec/features/integrations_settings_spec.rb @@ -3,25 +3,55 @@ require 'spec_helper' RSpec.describe 'Integration settings', feature_category: :integrations do - let_it_be(:project) { create(:project) } - let_it_be(:user) { create(:user) } + context 'when the integration is for a project ' do + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user) } - before do - project.add_maintainer(user) - sign_in(user) + before do + project.add_maintainer(user) + sign_in(user) + end + + context 'with Zentao integration records' do + before do + create(:integration, project: project, type_new: 'Integrations::Zentao', category: 'issue_tracker') + end + + it 'shows settings without Zentao', :js do + visit namespace_project_settings_integrations_path(namespace_id: project.namespace.full_path, + project_id: project.path) + + expect(page).to have_content('Add an integration') + expect(page).not_to have_content('ZenTao') + end + end end - context 'with Zentao integration records' do + context 'when the integration is for the instance' do + let_it_be(:user) { create(:admin) } + before do - create(:integration, project: project, type_new: 'Integrations::Zentao', category: 'issue_tracker') + sign_in(user) + enable_admin_mode!(user) end - it 'shows settings without Zentao', :js do - visit namespace_project_settings_integrations_path(namespace_id: project.namespace.full_path, - project_id: project.path) + context 'with Beyond Identity', :js do + it 'creates a Beyond Identity integration' do + visit edit_admin_application_settings_integration_path(Integrations::BeyondIdentity.to_param) + + first('label', text: 'Exclude service accounts').click + fill_in('service-token', with: 'sometoken') + + click_button 'Save changes' + click_button 'Save' + + expect(page).to have_checked_field('Active') + expect(page).to have_checked_field('Exclude service accounts') - expect(page).to have_content('Add an integration') - expect(page).not_to have_content('ZenTao') + integration = Integrations::BeyondIdentity.for_instance.take + expect(integration).to be_active + expect(integration.exclude_service_accounts).to be_truthy + end end end end