summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/alerting/notification_payload_parser_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/alerting/notification_payload_parser_spec.rb')
-rw-r--r--spec/lib/gitlab/alerting/notification_payload_parser_spec.rb35
1 files changed, 34 insertions, 1 deletions
diff --git a/spec/lib/gitlab/alerting/notification_payload_parser_spec.rb b/spec/lib/gitlab/alerting/notification_payload_parser_spec.rb
index f32095b3c86..889efae9585 100644
--- a/spec/lib/gitlab/alerting/notification_payload_parser_spec.rb
+++ b/spec/lib/gitlab/alerting/notification_payload_parser_spec.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'fast_spec_helper'
+require 'spec_helper'
describe Gitlab::Alerting::NotificationPayloadParser do
describe '.call' do
@@ -89,6 +89,39 @@ describe Gitlab::Alerting::NotificationPayloadParser do
end
end
+ context 'with fingerprint' do
+ before do
+ payload[:fingerprint] = data
+ end
+
+ shared_examples 'fingerprint generation' do
+ it 'generates the fingerprint correctly' do
+ expect(result).to eq(Gitlab::AlertManagement::Fingerprint.generate(data))
+ end
+ end
+
+ context 'with blank fingerprint' do
+ it_behaves_like 'fingerprint generation' do
+ let(:data) { ' ' }
+ let(:result) { subject.dig('annotations', 'fingerprint') }
+ end
+ end
+
+ context 'with fingerprint given' do
+ it_behaves_like 'fingerprint generation' do
+ let(:data) { 'fingerprint' }
+ let(:result) { subject.dig('annotations', 'fingerprint') }
+ end
+ end
+
+ context 'with array fingerprint given' do
+ it_behaves_like 'fingerprint generation' do
+ let(:data) { [1, 'fingerprint', 'given'] }
+ let(:result) { subject.dig('annotations', 'fingerprint') }
+ end
+ end
+ end
+
context 'when payload attributes have blank lines' do
let(:payload) do
{