summaryrefslogtreecommitdiff
path: root/spec/models/integrations
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-04-20 10:00:54 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-04-20 10:00:54 +0000
commit3cccd102ba543e02725d247893729e5c73b38295 (patch)
treef36a04ec38517f5deaaacb5acc7d949688d1e187 /spec/models/integrations
parent205943281328046ef7b4528031b90fbda70c75ac (diff)
downloadgitlab-ce-3cccd102ba543e02725d247893729e5c73b38295.tar.gz
Add latest changes from gitlab-org/gitlab@14-10-stable-eev14.10.0-rc42
Diffstat (limited to 'spec/models/integrations')
-rw-r--r--spec/models/integrations/base_third_party_wiki_spec.rb42
-rw-r--r--spec/models/integrations/emails_on_push_spec.rb3
-rw-r--r--spec/models/integrations/external_wiki_spec.rb2
-rw-r--r--spec/models/integrations/field_spec.rb12
-rw-r--r--spec/models/integrations/jira_spec.rb2
-rw-r--r--spec/models/integrations/slack_spec.rb4
6 files changed, 54 insertions, 11 deletions
diff --git a/spec/models/integrations/base_third_party_wiki_spec.rb b/spec/models/integrations/base_third_party_wiki_spec.rb
new file mode 100644
index 00000000000..11e044c2a18
--- /dev/null
+++ b/spec/models/integrations/base_third_party_wiki_spec.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Integrations::BaseThirdPartyWiki do
+ describe 'Validations' do
+ let_it_be_with_reload(:project) { create(:project) }
+
+ describe 'only one third party wiki per project' do
+ subject(:integration) { create(:shimo_integration, project: project, active: true) }
+
+ before_all do
+ create(:confluence_integration, project: project, active: true)
+ end
+
+ context 'when integration is changed manually by user' do
+ it 'executes the validation' do
+ valid = integration.valid?(:manual_change)
+
+ expect(valid).to be_falsey
+ error_message = 'Another third-party wiki is already in use. '\
+ 'Only one third-party wiki integration can be active at a time'
+ expect(integration.errors[:base]).to include _(error_message)
+ end
+ end
+
+ context 'when integration is changed internally' do
+ it 'does not execute the validation' do
+ expect(integration.valid?).to be_truthy
+ end
+ end
+
+ context 'when integration is not on the project level' do
+ subject(:integration) { create(:shimo_integration, :instance, active: true) }
+
+ it 'executes the validation' do
+ expect(integration.valid?(:manual_change)).to be_truthy
+ end
+ end
+ end
+ end
+end
diff --git a/spec/models/integrations/emails_on_push_spec.rb b/spec/models/integrations/emails_on_push_spec.rb
index bdca267f6cb..15aa105e379 100644
--- a/spec/models/integrations/emails_on_push_spec.rb
+++ b/spec/models/integrations/emails_on_push_spec.rb
@@ -78,9 +78,10 @@ RSpec.describe Integrations::EmailsOnPush do
end
describe '.valid_recipients' do
- let(:recipients) { '<invalid> foobar Valid@recipient.com Dup@lica.te dup@lica.te Dup@Lica.te' }
+ let(:recipients) { '<invalid> foobar valid@dup@asd Valid@recipient.com Dup@lica.te dup@lica.te Dup@Lica.te' }
it 'removes invalid email addresses and removes duplicates by keeping the original capitalization' do
+ expect(described_class.valid_recipients(recipients)).not_to contain_exactly('valid@dup@asd')
expect(described_class.valid_recipients(recipients)).to contain_exactly('Valid@recipient.com', 'Dup@lica.te')
end
end
diff --git a/spec/models/integrations/external_wiki_spec.rb b/spec/models/integrations/external_wiki_spec.rb
index e4d6a1c7c84..1621605d39f 100644
--- a/spec/models/integrations/external_wiki_spec.rb
+++ b/spec/models/integrations/external_wiki_spec.rb
@@ -24,7 +24,7 @@ RSpec.describe Integrations::ExternalWiki do
describe 'test' do
before do
- subject.properties['external_wiki_url'] = url
+ subject.external_wiki_url = url
end
let(:url) { 'http://foo' }
diff --git a/spec/models/integrations/field_spec.rb b/spec/models/integrations/field_spec.rb
index 0d660c4a3ab..c8caf831191 100644
--- a/spec/models/integrations/field_spec.rb
+++ b/spec/models/integrations/field_spec.rb
@@ -84,17 +84,17 @@ RSpec.describe ::Integrations::Field do
end
end
- describe '#sensitive' do
+ describe '#secret?' do
context 'when empty' do
- it { is_expected.not_to be_sensitive }
+ it { is_expected.not_to be_secret }
end
- context 'when a password field' do
+ context 'when a secret field' do
before do
attrs[:type] = 'password'
end
- it { is_expected.to be_sensitive }
+ it { is_expected.to be_secret }
end
%w[token api_token api_key secret_key secret_sauce password passphrase].each do |name|
@@ -103,7 +103,7 @@ RSpec.describe ::Integrations::Field do
attrs[:name] = name
end
- it { is_expected.to be_sensitive }
+ it { is_expected.to be_secret }
end
end
@@ -112,7 +112,7 @@ RSpec.describe ::Integrations::Field do
attrs[:name] = :url
end
- it { is_expected.not_to be_sensitive }
+ it { is_expected.not_to be_secret }
end
end
end
diff --git a/spec/models/integrations/jira_spec.rb b/spec/models/integrations/jira_spec.rb
index 08656bfe543..d244b1d33d5 100644
--- a/spec/models/integrations/jira_spec.rb
+++ b/spec/models/integrations/jira_spec.rb
@@ -187,7 +187,7 @@ RSpec.describe Integrations::Jira do
subject(:integration) { described_class.create!(params) }
it 'does not store data into properties' do
- expect(integration.properties).to be_nil
+ expect(integration.properties).to be_empty
end
it 'stores data in data_fields correctly' do
diff --git a/spec/models/integrations/slack_spec.rb b/spec/models/integrations/slack_spec.rb
index 9f69f4f51f8..3997d69f947 100644
--- a/spec/models/integrations/slack_spec.rb
+++ b/spec/models/integrations/slack_spec.rb
@@ -6,12 +6,12 @@ RSpec.describe Integrations::Slack do
it_behaves_like Integrations::SlackMattermostNotifier, "Slack"
describe '#execute' do
+ let_it_be(:slack_integration) { create(:integrations_slack, branches_to_be_notified: 'all') }
+
before do
stub_request(:post, slack_integration.webhook)
end
- let_it_be(:slack_integration) { create(:integrations_slack, branches_to_be_notified: 'all') }
-
it 'uses only known events', :aggregate_failures do
described_class::SUPPORTED_EVENTS_FOR_USAGE_LOG.each do |action|
expect(Gitlab::UsageDataCounters::HLLRedisCounter.known_event?("i_ecosystem_slack_service_#{action}_notification")).to be true