summaryrefslogtreecommitdiff
path: root/spec/models/deployment_spec.rb
diff options
context:
space:
mode:
authorThong Kuah <tkuah@gitlab.com>2019-07-01 21:40:59 +1200
committerThong Kuah <tkuah@gitlab.com>2019-07-08 09:13:21 +1200
commitd2ba2951f737082edd568505f985ebf9a0808be7 (patch)
tree7da25a607c16810546f6ea57e5354ba145029918 /spec/models/deployment_spec.rb
parent1b5b0dea5228ae7fd520c8bca3f03c4799a4d31d (diff)
downloadgitlab-ce-d2ba2951f737082edd568505f985ebf9a0808be7.tar.gz
Extract deployment_metrics into own object
We can now share project so that we don't have to load project twice. Also, this extracts non-relevant logic out of Deployment. Update DeploymentsController accordingly
Diffstat (limited to 'spec/models/deployment_spec.rb')
-rw-r--r--spec/models/deployment_spec.rb107
1 files changed, 0 insertions, 107 deletions
diff --git a/spec/models/deployment_spec.rb b/spec/models/deployment_spec.rb
index a926e1913a7..79647c5719c 100644
--- a/spec/models/deployment_spec.rb
+++ b/spec/models/deployment_spec.rb
@@ -295,113 +295,6 @@ describe Deployment do
end
end
- describe '#has_metrics?' do
- subject { deployment.has_metrics? }
-
- context 'when deployment is failed' do
- let(:deployment) { create(:deployment, :failed) }
-
- it { is_expected.to be_falsy }
- end
-
- context 'when deployment is success' do
- let(:deployment) { create(:deployment, :success) }
-
- context 'without a monitoring service' do
- it { is_expected.to be_falsy }
- end
-
- context 'with a Prometheus Service' do
- let(:prometheus_service) { double(:prometheus_service, can_query?: true) }
-
- before do
- allow(deployment.project).to receive(:find_or_initialize_service).with('prometheus').and_return prometheus_service
- end
-
- it { is_expected.to be_truthy }
- end
-
- context 'with a Prometheus Service that cannot query' do
- let(:prometheus_service) { double(:prometheus_service, can_query?: false) }
-
- before do
- allow(deployment.project).to receive(:find_or_initialize_service).with('prometheus').and_return prometheus_service
- end
-
- it { is_expected.to be_falsy }
- end
-
- context 'with a cluster Prometheus' do
- let(:deployment) { create(:deployment, :success, :on_cluster) }
- let!(:prometheus) { create(:clusters_applications_prometheus, :installed, cluster: deployment.cluster) }
-
- before do
- expect(deployment.cluster.application_prometheus).to receive(:can_query?).and_return(true)
- end
-
- it { is_expected.to be_truthy }
- end
- end
- end
-
- describe '#metrics' do
- let(:deployment) { create(:deployment, :success) }
- let(:prometheus_adapter) { double('prometheus_adapter', can_query?: true) }
-
- subject { deployment.metrics }
-
- context 'metrics are disabled' do
- it { is_expected.to eq({}) }
- end
-
- context 'metrics are enabled' do
- let(:simple_metrics) do
- {
- success: true,
- metrics: {},
- last_update: 42
- }
- end
-
- before do
- allow(deployment).to receive(:prometheus_adapter).and_return(prometheus_adapter)
- allow(prometheus_adapter).to receive(:query).with(:deployment, deployment).and_return(simple_metrics)
- end
-
- it { is_expected.to eq(simple_metrics.merge({ deployment_time: deployment.created_at.to_i })) }
- end
- end
-
- describe '#additional_metrics' do
- let(:project) { create(:project, :repository) }
- let(:deployment) { create(:deployment, :succeed, project: project) }
-
- subject { deployment.additional_metrics }
-
- context 'metrics are disabled' do
- it { is_expected.to eq({}) }
- end
-
- context 'metrics are enabled' do
- let(:simple_metrics) do
- {
- success: true,
- metrics: {},
- last_update: 42
- }
- end
-
- let(:prometheus_adapter) { double('prometheus_adapter', can_query?: true) }
-
- before do
- allow(deployment).to receive(:prometheus_adapter).and_return(prometheus_adapter)
- allow(prometheus_adapter).to receive(:query).with(:additional_metrics_deployment, deployment).and_return(simple_metrics)
- end
-
- it { is_expected.to eq(simple_metrics.merge({ deployment_time: deployment.created_at.to_i })) }
- end
- end
-
describe '#stop_action' do
let(:build) { create(:ci_build) }