diff options
Diffstat (limited to 'spec/lib/gitlab/alerting/notification_payload_parser_spec.rb')
-rw-r--r-- | spec/lib/gitlab/alerting/notification_payload_parser_spec.rb | 35 |
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 { |