From edaa33dee2ff2f7ea3fac488d41558eb5f86d68c Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 20 Jan 2022 09:16:11 +0000 Subject: Add latest changes from gitlab-org/gitlab@14-7-stable-ee --- .../dashboard/sync_dashboards_worker_spec.rb | 30 +++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'spec/workers/metrics') diff --git a/spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb b/spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb index 19b79835825..f151780ffd7 100644 --- a/spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb +++ b/spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb @@ -10,16 +10,34 @@ RSpec.describe Metrics::Dashboard::SyncDashboardsWorker do let(:dashboard_path) { '.gitlab/dashboards/test.yml' } describe ".perform" do - it 'imports metrics' do - expect { worker.perform(project.id) }.to change(PrometheusMetric, :count).by(3) + context 'with valid dashboard hash' do + it 'imports metrics' do + expect { worker.perform(project.id) }.to change(PrometheusMetric, :count).by(3) + end + + it 'is idempotent' do + 2.times do + worker.perform(project.id) + end + + expect(PrometheusMetric.count).to eq(3) + end end - it 'is idempotent' do - 2.times do - worker.perform(project.id) + context 'with invalid dashboard hash' do + before do + allow_next_instance_of(Gitlab::Metrics::Dashboard::Importer) do |instance| + allow(instance).to receive(:dashboard_hash).and_return({}) + end end - expect(PrometheusMetric.count).to eq(3) + it 'does not import metrics' do + expect { worker.perform(project.id) }.not_to change(PrometheusMetric, :count) + end + + it 'does not raise an error' do + expect { worker.perform(project.id) }.not_to raise_error + end end end end -- cgit v1.2.3