summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Chojnacki <pawel@chojnacki.ws>2018-03-05 21:02:26 +0100
committerPawel Chojnacki <pawel@chojnacki.ws>2018-03-05 21:02:26 +0100
commitb53356546dc54a6674eda8fa2d4f730a70f77206 (patch)
tree35e655f82b3f80039cded957b866ba16629eb2b5
parent5ceec83a0154e513480a9bb08e252371bf7886c6 (diff)
downloadgitlab-ce-b53356546dc54a6674eda8fa2d4f730a70f77206.tar.gz
Check if prometheus_adapter is properly called
-rw-r--r--app/controllers/projects/prometheus/metrics_controller.rb3
-rw-r--r--spec/controllers/projects/prometheus/metrics_controller_spec.rb18
-rw-r--r--spec/models/environment_spec.rb32
3 files changed, 21 insertions, 32 deletions
diff --git a/app/controllers/projects/prometheus/metrics_controller.rb b/app/controllers/projects/prometheus/metrics_controller.rb
index 523abce35fb..51b29855bcf 100644
--- a/app/controllers/projects/prometheus/metrics_controller.rb
+++ b/app/controllers/projects/prometheus/metrics_controller.rb
@@ -21,9 +21,10 @@ module Projects
private
def prometheus_adapter
- @prometheus_adapter ||= Prometheus::AdapterService.new(project).prometheus_adapter
+ @prometheus_adapter ||= ::Prometheus::AdapterService.new(project).prometheus_adapter
end
+
def require_prometheus_metrics!
render_404 unless prometheus_adapter.can_query?
end
diff --git a/spec/controllers/projects/prometheus/metrics_controller_spec.rb b/spec/controllers/projects/prometheus/metrics_controller_spec.rb
index 9d2ac42e99f..b2b245dba90 100644
--- a/spec/controllers/projects/prometheus/metrics_controller_spec.rb
+++ b/spec/controllers/projects/prometheus/metrics_controller_spec.rb
@@ -7,13 +7,15 @@ describe Projects::Prometheus::MetricsController do
let(:prometheus_adapter) { double('prometheus_adapter', can_query?: true) }
before do
- allow(controller).to receive(:prometheus_adapter).and_return(prometheus_adapter)
-
project.add_master(user)
sign_in(user)
end
describe 'GET #active_common' do
+ before do
+ allow(controller).to receive(:prometheus_adapter).and_return(prometheus_adapter)
+ end
+
context 'when prometheus metrics are enabled' do
context 'when data is not present' do
before do
@@ -52,6 +54,18 @@ describe Projects::Prometheus::MetricsController do
end
end
+ describe '#prometheus_adapter' do
+ before do
+ allow(controller).to receive(:project).and_return(project)
+ end
+
+ it 'calls prometheus adapter service' do
+ expect_any_instance_of(::Prometheus::AdapterService).to receive(:prometheus_adapter)
+
+ subject.__send__(:prometheus_adapter)
+ end
+ end
+
def project_params(opts = {})
opts.reverse_merge(namespace_id: project.namespace, project_id: project)
end
diff --git a/spec/models/environment_spec.rb b/spec/models/environment_spec.rb
index 8c052888b04..ceb570ac777 100644
--- a/spec/models/environment_spec.rb
+++ b/spec/models/environment_spec.rb
@@ -623,36 +623,10 @@ describe Environment do
end
describe '#prometheus_adapter' do
- let(:cluster) { create(:cluster, :provided_by_user, environment_scope: '*', projects: [project]) }
+ it 'calls prometheus adapter service' do
+ expect_any_instance_of(Prometheus::AdapterService).to receive(:prometheus_adapter)
- context 'prometheus service can execute queries' do
- let(:prometheus_service) { double(:prometheus_service, can_query?: true) }
-
- before do
- allow(environment.project).to receive(:find_or_initialize_service).with('prometheus').and_return prometheus_service
- end
-
- it 'return prometheus service as prometheus adapter' do
- expect(environment.prometheus_adapter).to eq(prometheus_service)
- end
- end
-
- context "prometheus service can't execute queries" do
- let(:prometheus_service) { double(:prometheus_service, can_query?: false) }
-
- context 'with cluster with prometheus installed' do
- let!(:prometheus) { create(:clusters_applications_prometheus, :installed, cluster: cluster) }
-
- it 'returns application handling all environments' do
- expect(environment.prometheus_adapter).to eq(prometheus)
- end
- end
-
- context 'with cluster without prometheus installed' do
- it 'returns nil' do
- expect(environment.prometheus_adapter).to be_nil
- end
- end
+ subject.prometheus_adapter
end
end
end