From a3284b521e9a513a76e13f12cd8ae7dcc68dca9c Mon Sep 17 00:00:00 2001 From: rpereira2 Date: Mon, 1 Apr 2019 23:11:19 +0530 Subject: Add specs for ProxyService --- spec/services/prometheus/proxy_service_spec.rb | 27 ++++++++++++++++++++------ 1 file 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 -- cgit v1.2.1