Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorPawel Chojnacki <pawel@chojnacki.ws>2017-05-29 15:19:43 +0300
committerPawel Chojnacki <pawel@chojnacki.ws>2017-06-02 20:45:58 +0300
commitc134a72cdb7e6de8b70dc60de99cf4edc68a9227 (patch)
tree0082ba4d422cc53eea223583bca9c98cbc823c96 /spec
parent770f07cd5c68075bb261f4b6139c92b2ac9309c0 (diff)
Move Prometheus presentation logic to PrometheusText
+ Use NullMetrics to mock metrics when unused + Use method_missing in NullMetrics mocking + Update prometheus gem to version that correctly uses transitive dependencies + Ensure correct folders are used in Multiprocess prometheus client tests. + rename Sessions controller's metric
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/metrics_controller_spec.rb4
-rw-r--r--spec/lib/gitlab/metrics_spec.rb32
-rw-r--r--spec/spec_helper.rb1
3 files changed, 24 insertions, 13 deletions
diff --git a/spec/controllers/metrics_controller_spec.rb b/spec/controllers/metrics_controller_spec.rb
index cd31f750ffd..7baf7d1bef9 100644
--- a/spec/controllers/metrics_controller_spec.rb
+++ b/spec/controllers/metrics_controller_spec.rb
@@ -6,10 +6,10 @@ describe MetricsController do
let(:token) { current_application_settings.health_check_access_token }
let(:json_response) { JSON.parse(response.body) }
- around do |examples|
+ around do |example|
Dir.mktmpdir do |tmp_dir|
@metrics_multiproc_dir = tmp_dir
- examples.run
+ example.run
end
end
diff --git a/spec/lib/gitlab/metrics_spec.rb b/spec/lib/gitlab/metrics_spec.rb
index 863868e1576..87c9f4ebda4 100644
--- a/spec/lib/gitlab/metrics_spec.rb
+++ b/spec/lib/gitlab/metrics_spec.rb
@@ -1,6 +1,8 @@
require 'spec_helper'
describe Gitlab::Metrics do
+ include StubENV
+
describe '.settings' do
it 'returns a Hash' do
expect(described_class.settings).to be_an_instance_of(Hash)
@@ -247,45 +249,53 @@ describe Gitlab::Metrics do
it_behaves_like 'prometheus metrics API'
- describe '#dummy_metric' do
+ describe '#null_metric' do
subject { described_class.provide_metric(:test) }
- it { is_expected.to be_a(Gitlab::Metrics::DummyMetric) }
+ it { is_expected.to be_a(Gitlab::Metrics::NullMetric) }
end
describe '#counter' do
subject { described_class.counter(:counter, 'doc') }
- it { is_expected.to be_a(Gitlab::Metrics::DummyMetric) }
+ it { is_expected.to be_a(Gitlab::Metrics::NullMetric) }
end
describe '#summary' do
subject { described_class.summary(:summary, 'doc') }
- it { is_expected.to be_a(Gitlab::Metrics::DummyMetric) }
+ it { is_expected.to be_a(Gitlab::Metrics::NullMetric) }
end
describe '#gauge' do
subject { described_class.gauge(:gauge, 'doc') }
- it { is_expected.to be_a(Gitlab::Metrics::DummyMetric) }
+ it { is_expected.to be_a(Gitlab::Metrics::NullMetric) }
end
describe '#histogram' do
subject { described_class.histogram(:histogram, 'doc') }
- it { is_expected.to be_a(Gitlab::Metrics::DummyMetric) }
+ it { is_expected.to be_a(Gitlab::Metrics::NullMetric) }
end
end
context 'prometheus metrics enabled' do
+ around do |example|
+ Dir.mktmpdir do |tmp_dir|
+ @metrics_multiproc_dir = tmp_dir
+ example.run
+ end
+ end
+
before do
+ stub_const('Prometheus::Client::Multiprocdir', @metrics_multiproc_dir)
allow(described_class).to receive(:prometheus_metrics_enabled?).and_return(true)
end
it_behaves_like 'prometheus metrics API'
- describe '#dummy_metric' do
+ describe '#null_metric' do
subject { described_class.provide_metric(:test) }
it { is_expected.to be_nil }
@@ -294,25 +304,25 @@ describe Gitlab::Metrics do
describe '#counter' do
subject { described_class.counter(:name, 'doc') }
- it { is_expected.not_to be_a(Gitlab::Metrics::DummyMetric) }
+ it { is_expected.not_to be_a(Gitlab::Metrics::NullMetric) }
end
describe '#summary' do
subject { described_class.summary(:name, 'doc') }
- it { is_expected.not_to be_a(Gitlab::Metrics::DummyMetric) }
+ it { is_expected.not_to be_a(Gitlab::Metrics::NullMetric) }
end
describe '#gauge' do
subject { described_class.gauge(:name, 'doc') }
- it { is_expected.not_to be_a(Gitlab::Metrics::DummyMetric) }
+ it { is_expected.not_to be_a(Gitlab::Metrics::NullMetric) }
end
describe '#histogram' do
subject { described_class.histogram(:name, 'doc') }
- it { is_expected.not_to be_a(Gitlab::Metrics::DummyMetric) }
+ it { is_expected.not_to be_a(Gitlab::Metrics::NullMetric) }
end
end
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 994c7dcbb46..f800c5bcb07 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -3,6 +3,7 @@ SimpleCovEnv.start!
ENV["RAILS_ENV"] ||= 'test'
ENV["IN_MEMORY_APPLICATION_SETTINGS"] = 'true'
+# ENV['prometheus_multiproc_dir'] = 'tmp/prometheus_multiproc_dir_test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'