summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Chojnacki <pawel@chojnacki.ws>2017-08-02 13:58:23 +0200
committerPawel Chojnacki <pawel@chojnacki.ws>2017-08-02 15:09:54 +0200
commit1db68b5fe949334952ac5af536a477487da5f920 (patch)
treef47e66c21d7e66769fb7e21d8966584a26710bf0
parentbfa0c971091b0e4ab051ea07c6c1e216c759a2d7 (diff)
downloadgitlab-ce-1db68b5fe949334952ac5af536a477487da5f920.tar.gz
Fix at_exit hook for SidekiqExporter and add better tests for settings
-rw-r--r--lib/gitlab/metrics/sidekiq_metrics_exporter.rb2
-rw-r--r--spec/lib/gitlab/metrics/sidekiq_metrics_exporter_spec.rb27
2 files changed, 19 insertions, 10 deletions
diff --git a/lib/gitlab/metrics/sidekiq_metrics_exporter.rb b/lib/gitlab/metrics/sidekiq_metrics_exporter.rb
index 23fc2c21f28..2521ab9bf7f 100644
--- a/lib/gitlab/metrics/sidekiq_metrics_exporter.rb
+++ b/lib/gitlab/metrics/sidekiq_metrics_exporter.rb
@@ -5,7 +5,7 @@ module Gitlab
module Metrics
class SidekiqMetricsExporter < Daemon
def self.instance
- @instance ||= SidekiqMetricsExporter.new
+ @instance ||= initialize_instance
end
def enabled?
diff --git a/spec/lib/gitlab/metrics/sidekiq_metrics_exporter_spec.rb b/spec/lib/gitlab/metrics/sidekiq_metrics_exporter_spec.rb
index bc37350abc8..8396ba0a302 100644
--- a/spec/lib/gitlab/metrics/sidekiq_metrics_exporter_spec.rb
+++ b/spec/lib/gitlab/metrics/sidekiq_metrics_exporter_spec.rb
@@ -16,7 +16,7 @@ describe Gitlab::Metrics::SidekiqMetricsExporter do
allow(Kernel).to receive(:at_exit)
end
- after do
+ after(:each) do
described_class.instance_variable_set(:@instance, nil)
end
@@ -31,7 +31,7 @@ describe Gitlab::Metrics::SidekiqMetricsExporter do
it 'creates at_exit hook when instance is created' do
expect(described_class.instance).not_to be_nil
- expect(Kernel).to have_received(:at_exit).with(described_class.instance)
+ expect(Kernel).to have_received(:at_exit)
end
end
@@ -48,13 +48,22 @@ describe Gitlab::Metrics::SidekiqMetricsExporter do
expect(server).to have_received(:start)
end
- it 'starts server with port and address from settings' do
- expect(::WEBrick::HTTPServer).to receive(:new).with(
- Port: Settings.monitoring.sidekiq_exporter.port,
- BindAddress: Settings.monitoring.sidekiq_exporter.address
- )
-
- exporter.start.join
+ describe 'with custom settings' do
+ let(:port) { 99999 }
+ let(:address) { 'sidekiq_exporter_address' }
+ before do
+ allow(Settings.monitoring.sidekiq_exporter).to receive(:port).and_return(port)
+ allow(Settings.monitoring.sidekiq_exporter).to receive(:address).and_return(address)
+ end
+
+ it 'starts server with port and address from settings' do
+ exporter.start.join
+
+ expect(::WEBrick::HTTPServer).to have_received(:new).with(
+ Port: port,
+ BindAddress: address
+ )
+ end
end
end