summaryrefslogtreecommitdiff
path: root/spec/factories/alert_management/alerts.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/factories/alert_management/alerts.rb')
-rw-r--r--spec/factories/alert_management/alerts.rb81
1 files changed, 81 insertions, 0 deletions
diff --git a/spec/factories/alert_management/alerts.rb b/spec/factories/alert_management/alerts.rb
new file mode 100644
index 00000000000..01f40a7a465
--- /dev/null
+++ b/spec/factories/alert_management/alerts.rb
@@ -0,0 +1,81 @@
+# frozen_string_literal: true
+require 'ffaker'
+
+FactoryBot.define do
+ factory :alert_management_alert, class: 'AlertManagement::Alert' do
+ triggered
+ project
+ title { FFaker::Lorem.sentence }
+ started_at { Time.current }
+
+ trait :with_issue do
+ issue
+ end
+
+ trait :with_fingerprint do
+ fingerprint { SecureRandom.hex }
+ end
+
+ trait :with_service do
+ service { FFaker::Product.product_name }
+ end
+
+ trait :with_monitoring_tool do
+ monitoring_tool { FFaker::AWS.product_description }
+ end
+
+ trait :with_description do
+ description { FFaker::Lorem.sentence }
+ end
+
+ trait :with_host do
+ hosts { [FFaker::Internet.ip_v4_address] }
+ end
+
+ trait :with_ended_at do
+ ended_at { Time.current }
+ end
+
+ trait :without_ended_at do
+ ended_at { nil }
+ end
+
+ trait :triggered do
+ status { AlertManagement::Alert::STATUSES[:triggered] }
+ without_ended_at
+ end
+
+ trait :acknowledged do
+ status { AlertManagement::Alert::STATUSES[:acknowledged] }
+ without_ended_at
+ end
+
+ trait :resolved do
+ status { AlertManagement::Alert::STATUSES[:resolved] }
+ with_ended_at
+ end
+
+ trait :ignored do
+ status { AlertManagement::Alert::STATUSES[:ignored] }
+ without_ended_at
+ end
+
+ trait :low_severity do
+ severity { 'low' }
+ end
+
+ trait :prometheus do
+ monitoring_tool { Gitlab::AlertManagement::AlertParams::MONITORING_TOOLS[:prometheus] }
+ end
+
+ trait :all_fields do
+ with_issue
+ with_fingerprint
+ with_service
+ with_monitoring_tool
+ with_host
+ with_description
+ low_severity
+ end
+ end
+end