summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrpereira2 <rpereira@gitlab.com>2019-04-01 23:11:19 +0530
committerrpereira2 <rpereira@gitlab.com>2019-04-01 23:11:19 +0530
commita3284b521e9a513a76e13f12cd8ae7dcc68dca9c (patch)
tree59e377ce8495675fa8828ad4746646e565a89363
parent53c6a2da6169d976c0e9c58005d2d5c349701305 (diff)
downloadgitlab-ce-58375-prometheus-api.tar.gz
Add specs for ProxyService58375-prometheus-api
-rw-r--r--spec/services/prometheus/proxy_service_spec.rb27
1 files changed, 21 insertions, 6 deletions
diff --git a/spec/services/prometheus/proxy_service_spec.rb b/spec/services/prometheus/proxy_service_spec.rb
index 03df10ea274..985696d4e2e 100644
--- a/spec/services/prometheus/proxy_service_spec.rb
+++ b/spec/services/prometheus/proxy_service_spec.rb
@@ -4,9 +4,9 @@ require 'spec_helper'
describe Prometheus::ProxyService do
include ReactiveCachingHelpers
- include PrometheusHelpers
- let(:environment) { create(:environment) }
+ set(:project) { create(:project) }
+ set(:environment) { create(:environment, project: project) }
describe '#execute' do
let(:prometheus_adapter) { instance_double(PrometheusService) }
@@ -53,8 +53,7 @@ describe Prometheus::ProxyService do
end
end
- context 'When cached' do
- # TODO: fix this spec
+ context 'When cached', :use_clean_rails_memory_store_caching do
let(:return_value) { { 'http_status' => 200, 'body' => 'body' } }
let(:opts) { [environment.class.name, environment.id, 'GET', 'query', { 'query' => '1' }] }
@@ -69,14 +68,30 @@ describe Prometheus::ProxyService do
it 'returns cached value' do
result = subject.execute
- expect(subject).not_to receive(:calculate_reactive_cache)
expect(result[:http_status]).to eq(return_value[:http_status])
expect(result[:body]).to eq(return_value[:body])
end
end
context 'When not cached' do
- # TODO
+ let(:return_value) { { 'http_status' => 200, 'body' => 'body' } }
+ let(:opts) { [environment.class.name, environment.id, 'GET', 'query', { 'query' => '1' }] }
+
+ before do
+ allow(environment).to receive(:prometheus_adapter)
+ .and_return(prometheus_adapter)
+ allow(prometheus_adapter).to receive(:can_query?).and_return(true)
+ end
+
+ it 'returns nil' do
+ expect(ReactiveCachingWorker)
+ .to receive(:perform_async)
+ .with(subject.class, subject.id, *opts)
+
+ result = subject.execute
+
+ expect(result).to eq(nil)
+ end
end
context 'Call prometheus api' do