diff options
author | Pawel Chojnacki <pawel@chojnacki.ws> | 2017-08-02 13:58:23 +0200 |
---|---|---|
committer | Pawel Chojnacki <pawel@chojnacki.ws> | 2017-08-02 15:09:54 +0200 |
commit | 1db68b5fe949334952ac5af536a477487da5f920 (patch) | |
tree | f47e66c21d7e66769fb7e21d8966584a26710bf0 | |
parent | bfa0c971091b0e4ab051ea07c6c1e216c759a2d7 (diff) | |
download | gitlab-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.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/metrics/sidekiq_metrics_exporter_spec.rb | 27 |
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 |