diff options
Diffstat (limited to 'spec/factories/alert_management/alerts.rb')
-rw-r--r-- | spec/factories/alert_management/alerts.rb | 81 |
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 |