diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-05-19 07:33:21 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-05-19 07:33:21 +0000 |
commit | 36a59d088eca61b834191dacea009677a96c052f (patch) | |
tree | e4f33972dab5d8ef79e3944a9f403035fceea43f /spec/services/prometheus/create_default_alerts_service_spec.rb | |
parent | a1761f15ec2cae7c7f7bbda39a75494add0dfd6f (diff) | |
download | gitlab-ce-36a59d088eca61b834191dacea009677a96c052f.tar.gz |
Add latest changes from gitlab-org/gitlab@15-0-stable-eev15.0.0-rc42
Diffstat (limited to 'spec/services/prometheus/create_default_alerts_service_spec.rb')
-rw-r--r-- | spec/services/prometheus/create_default_alerts_service_spec.rb | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/spec/services/prometheus/create_default_alerts_service_spec.rb b/spec/services/prometheus/create_default_alerts_service_spec.rb deleted file mode 100644 index 0880799b589..00000000000 --- a/spec/services/prometheus/create_default_alerts_service_spec.rb +++ /dev/null @@ -1,92 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Prometheus::CreateDefaultAlertsService do - let_it_be(:project) { create(:project, :repository) } - - let(:instance) { described_class.new(project: project) } - let(:expected_alerts) { described_class::DEFAULT_ALERTS } - - describe '#execute' do - subject(:execute) { instance.execute } - - shared_examples 'no alerts created' do - it 'does not create alerts' do - expect { execute }.not_to change { project.reload.prometheus_alerts.count } - end - end - - context 'no environment' do - it_behaves_like 'no alerts created' - end - - context 'environment exists' do - let_it_be(:environment) { create(:environment, project: project) } - - context 'no found metric' do - it_behaves_like 'no alerts created' - end - - context 'metric exists' do - before do - create_expected_metrics! - end - - context 'alert exists already' do - before do - create_pre_existing_alerts!(environment) - end - - it_behaves_like 'no alerts created' - end - - it 'creates alerts' do - expect { execute }.to change { project.reload.prometheus_alerts.count } - .by(expected_alerts.size) - end - - it 'does not schedule an update to prometheus' do - expect(::Clusters::Applications::ScheduleUpdateService).not_to receive(:new) - execute - end - - context 'cluster with prometheus exists' do - let!(:cluster) { create(:cluster, :with_installed_prometheus, :provided_by_user, projects: [project]) } - - it 'schedules an update to prometheus' do - expect_next_instance_of(::Clusters::Applications::ScheduleUpdateService) do |instance| - expect(instance).to receive(:execute) - end - - execute - end - end - - context 'multiple environments' do - let!(:production) { create(:environment, project: project, name: 'production') } - - it 'uses the production environment' do - expect { execute }.to change { production.reload.prometheus_alerts.count } - .by(expected_alerts.size) - end - end - end - end - end - - private - - def create_expected_metrics! - expected_alerts.each do |alert_hash| - create(:prometheus_metric, :common, identifier: alert_hash.fetch(:identifier)) - end - end - - def create_pre_existing_alerts!(environment) - expected_alerts.each do |alert_hash| - metric = PrometheusMetric.for_identifier(alert_hash[:identifier]).first! - create(:prometheus_alert, prometheus_metric: metric, project: project, environment: environment) - end - end -end |