diff --git a/spec/models/integrations/gitlab_slack_application_spec.rb b/spec/models/integrations/gitlab_slack_application_spec.rb index fb3247a1f72467f3c500bdebc33fd9864840cb8f..8f2aff0191d45539f28a3922ec584a6361884354 100644 --- a/spec/models/integrations/gitlab_slack_application_spec.rb +++ b/spec/models/integrations/gitlab_slack_application_spec.rb @@ -373,5 +373,29 @@ def stub_slack_request(channel:, success:) expect(new_integration).not_to be_active end end + + context 'when duplicating an instance-level integration without project parent' do + let(:slack_integration) { create(:slack_integration) } + let(:initial_integration) do + create(:gitlab_slack_application_integration, :instance, slack_integration: slack_integration) + end + + let(:new_integration) { build(:gitlab_slack_application_integration, :instance) } + + it 'duplicates slack_integration with INSTANCE_ALIAS' do + initial_integration.after_build_from_integration(new_integration) + + new_slack_integration = new_integration.slack_integration + expect(new_slack_integration.slack_api_scopes.ids).to match_array(slack_integration.slack_api_scopes.ids) + expect(new_slack_integration).to have_attributes( + alias: SlackIntegration::INSTANCE_ALIAS, + team_id: slack_integration.team_id, + team_name: slack_integration.team_name, + user_id: slack_integration.user_id, + bot_user_id: slack_integration.bot_user_id, + bot_access_token: slack_integration.bot_access_token + ) + end + end end end