diff options
author | Pawel Chojnacki <pawel@chojnacki.ws> | 2017-04-26 22:09:03 +0200 |
---|---|---|
committer | Pawel Chojnacki <pawel@chojnacki.ws> | 2017-05-11 23:07:12 +0200 |
commit | 4f824d2aecf4fec46febd767fa7f7d747c732112 (patch) | |
tree | 09b0b6458b7ec4fc414431f1d323b01bb68265ef /spec/models/project_services/prometheus_service_spec.rb | |
parent | e7b53dd67815a306dfb57cb7545d06391bc12aa7 (diff) | |
download | gitlab-ce-4f824d2aecf4fec46febd767fa7f7d747c732112.tar.gz |
Custom queries for prometheus
- Tests for prometheus queries
- fix rubocop warnings
- Remove unused method. Add more queries to deployment queries.
- Wrap BaseQuery in module hierarchy
Renname Prometheus class to PrometheusClient
Diffstat (limited to 'spec/models/project_services/prometheus_service_spec.rb')
-rw-r--r-- | spec/models/project_services/prometheus_service_spec.rb | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/spec/models/project_services/prometheus_service_spec.rb b/spec/models/project_services/prometheus_service_spec.rb index 82a3e2698c1..739850a836e 100644 --- a/spec/models/project_services/prometheus_service_spec.rb +++ b/spec/models/project_services/prometheus_service_spec.rb @@ -6,6 +6,7 @@ describe PrometheusService, models: true, caching: true do let(:project) { create(:prometheus_project) } let(:service) { project.prometheus_service } + let(:environment_query) { Gitlab::Prometheus::Queries::EnvironmentQuery } describe "Associations" do it { is_expected.to belong_to :project } @@ -45,32 +46,39 @@ describe PrometheusService, models: true, caching: true do end end - describe '#metrics' do + describe '#environment_metrics' do let(:environment) { build_stubbed(:environment, slug: 'env-slug') } around do |example| Timecop.freeze { example.run } end - context 'with valid data without time range' do - subject { service.metrics(environment) } + context 'with valid data' do + subject { service.environment_metrics(environment) } before do - stub_reactive_cache(service, prometheus_data, 'env-slug', nil, nil) + stub_reactive_cache(service, prometheus_data, environment_query, environment.id) end it 'returns reactive data' do is_expected.to eq(prometheus_data) end end + end - context 'with valid data with time range' do - let(:t_start) { 1.hour.ago.utc } - let(:t_end) { Time.now.utc } - subject { service.metrics(environment, timeframe_start: t_start, timeframe_end: t_end) } + describe '#deployment_metrics' do + let(:deployment) { build_stubbed(:deployment)} + let(:deployment_query) { Gitlab::Prometheus::Queries::DeploymentQuery } + + around do |example| + Timecop.freeze { example.run } + end + + context 'with valid data' do + subject { service.deployment_metrics(deployment) } before do - stub_reactive_cache(service, prometheus_data, 'env-slug', t_start, t_end) + stub_reactive_cache(service, prometheus_data, deployment_query, deployment.id) end it 'returns reactive data' do @@ -80,14 +88,14 @@ describe PrometheusService, models: true, caching: true do end describe '#calculate_reactive_cache' do - let(:environment) { build_stubbed(:environment, slug: 'env-slug') } + let(:environment) { create(:environment, slug: 'env-slug') } around do |example| Timecop.freeze { example.run } end subject do - service.calculate_reactive_cache(environment.slug, nil, nil) + service.calculate_reactive_cache(environment_query.to_s, environment.id) end context 'when service is inactive' do |