Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/alert_management/payload/prometheus_spec.rb')
-rw-r--r--spec/lib/gitlab/alert_management/payload/prometheus_spec.rb63
1 files changed, 61 insertions, 2 deletions
diff --git a/spec/lib/gitlab/alert_management/payload/prometheus_spec.rb b/spec/lib/gitlab/alert_management/payload/prometheus_spec.rb
index 457db58a28b..f574f5ba6a3 100644
--- a/spec/lib/gitlab/alert_management/payload/prometheus_spec.rb
+++ b/spec/lib/gitlab/alert_management/payload/prometheus_spec.rb
@@ -156,8 +156,6 @@ RSpec.describe Gitlab::AlertManagement::Payload::Prometheus do
end
describe '#gitlab_fingerprint' do
- subject { parsed_payload.gitlab_fingerprint }
-
let(:raw_payload) do
{
'startsAt' => Time.current.to_s,
@@ -166,6 +164,8 @@ RSpec.describe Gitlab::AlertManagement::Payload::Prometheus do
}
end
+ subject { parsed_payload.gitlab_fingerprint }
+
it 'returns a fingerprint' do
plain_fingerprint = [
parsed_payload.send(:starts_at_raw),
@@ -237,4 +237,63 @@ RSpec.describe Gitlab::AlertManagement::Payload::Prometheus do
it { is_expected.to be_falsey }
end
end
+
+ describe '#severity' do
+ subject { parsed_payload.severity }
+
+ context 'when set' do
+ using RSpec::Parameterized::TableSyntax
+
+ let(:raw_payload) { { 'labels' => { 'severity' => payload_severity } } }
+
+ where(:payload_severity, :expected_severity) do
+ 'critical' | :critical
+ 'high' | :high
+ 'medium' | :medium
+ 'low' | :low
+ 'info' | :info
+
+ 's1' | :critical
+ 's2' | :high
+ 's3' | :medium
+ 's4' | :low
+ 's5' | :info
+ 'p1' | :critical
+ 'p2' | :high
+ 'p3' | :medium
+ 'p4' | :low
+ 'p5' | :info
+
+ 'CRITICAL' | :critical
+ 'cRiTiCaL' | :critical
+ 'S1' | :critical
+
+ 'unmapped' | nil
+ 1 | nil
+ nil | nil
+
+ 'debug' | :info
+ 'information' | :info
+ 'notice' | :info
+ 'warn' | :low
+ 'warning' | :low
+ 'minor' | :low
+ 'error' | :medium
+ 'major' | :high
+ 'emergency' | :critical
+ 'fatal' | :critical
+
+ 'alert' | :medium
+ 'page' | :high
+ end
+
+ with_them do
+ it { is_expected.to eq(expected_severity) }
+ end
+ end
+
+ context 'without key' do
+ it { is_expected.to be_nil }
+ end
+ end
end