summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/prometheus
diff options
context:
space:
mode:
authorPawel Chojnacki <pawel@chojnacki.ws>2017-06-05 11:32:56 +0200
committerPawel Chojnacki <pawel@chojnacki.ws>2017-06-05 11:37:07 +0200
commitae5268ce8cc533be4086a11d9d89fa726136d59d (patch)
treee61b5177d712bf8a6807efce3cf32da55863abbc /spec/lib/gitlab/prometheus
parent6a70509a2763717e592c603249855bfb43519d2f (diff)
downloadgitlab-ce-ae5268ce8cc533be4086a11d9d89fa726136d59d.tar.gz
Additional Metrics tests
Diffstat (limited to 'spec/lib/gitlab/prometheus')
-rw-r--r--spec/lib/gitlab/prometheus/queries/additional_metrics_query_spec.rb49
-rw-r--r--spec/lib/gitlab/prometheus/queries/matched_metrics_query_spec.rb2
2 files changed, 50 insertions, 1 deletions
diff --git a/spec/lib/gitlab/prometheus/queries/additional_metrics_query_spec.rb b/spec/lib/gitlab/prometheus/queries/additional_metrics_query_spec.rb
new file mode 100644
index 00000000000..c7e2dbc12ec
--- /dev/null
+++ b/spec/lib/gitlab/prometheus/queries/additional_metrics_query_spec.rb
@@ -0,0 +1,49 @@
+require 'spec_helper'
+
+describe Gitlab::Prometheus::Queries::AdditionalMetricsQuery, lib: true do
+ include Prometheus::AdditionalMetricsQueryHelper
+
+ let(:metric_group_class) { Gitlab::Prometheus::MetricGroup }
+ let(:metric_class) { Gitlab::Prometheus::Metric }
+
+ let(:client) { double('prometheus_client') }
+ let(:environment) { create(:environment, slug: 'environment-slug') }
+
+ subject(:query_result) { described_class.new(client).query(environment.id) }
+
+
+ context 'with one group where two metrics is found' do
+ before do
+ allow(metric_group_class).to receive(:all).and_return([simple_metric_group])
+ allow(client).to receive(:label_values).and_return(metric_names)
+ end
+
+ context 'some querie return results' do
+ before do
+ expect(client).to receive(:query_range).with('query_range_a', any_args).and_return(query_range_result)
+ expect(client).to receive(:query_range).with('query_range_b', any_args).and_return(query_range_result)
+ expect(client).to receive(:query_range).with('query_range_empty', any_args).and_return([])
+ end
+
+ it 'return results only for queries with results' do
+ puts query_result
+ expected = {
+ group: 'name',
+ priority: 1,
+ metrics:
+ [
+ {
+ title: 'title', weight: nil, y_label: 'Values', queries:
+ [
+ { query_range: 'query_range_a', result: query_range_result },
+ { query_range: 'query_range_b', label: 'label', unit: 'unit', result: query_range_result }
+ ]
+ }
+ ]
+ }
+
+ expect(query_result).to eq([expected])
+ end
+ end
+ end
+end
diff --git a/spec/lib/gitlab/prometheus/queries/matched_metrics_query_spec.rb b/spec/lib/gitlab/prometheus/queries/matched_metrics_query_spec.rb
index d46de56f520..390fff568cc 100644
--- a/spec/lib/gitlab/prometheus/queries/matched_metrics_query_spec.rb
+++ b/spec/lib/gitlab/prometheus/queries/matched_metrics_query_spec.rb
@@ -10,7 +10,7 @@ describe Gitlab::Prometheus::Queries::MatchedMetricsQuery, lib: true do
subject { described_class.new(client) }
- context 'with one group where two metrics are found' do
+ context 'with one group where two metrics is found' do
before do
allow(metric_group_class).to receive(:all).and_return([simple_metric_group])
allow(client).to receive(:label_values).and_return(metric_names)