From 9efd3165016131e7f609c3ff555f29f8c4414a2e Mon Sep 17 00:00:00 2001 From: Daniel Pepper Date: Fri, 1 Dec 2023 17:01:18 -0800 Subject: [PATCH] statsd cleanup --- lib/flipper/instrumentation/statsd_subscriber.rb | 6 ++---- .../instrumentation/statsd_subscriber_spec.rb | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/flipper/instrumentation/statsd_subscriber.rb b/lib/flipper/instrumentation/statsd_subscriber.rb index b7f73f3fb..44d52348a 100644 --- a/lib/flipper/instrumentation/statsd_subscriber.rb +++ b/lib/flipper/instrumentation/statsd_subscriber.rb @@ -12,13 +12,11 @@ class << self end def update_timer(metric) - if self.class.client - self.class.client.timing metric, (@duration * 1_000).round - end + self.class.client&.timing metric, (@duration * 1_000).round end def update_counter(metric) - self.class.client.increment metric if self.class.client + self.class.client&.increment metric end end end diff --git a/spec/flipper/instrumentation/statsd_subscriber_spec.rb b/spec/flipper/instrumentation/statsd_subscriber_spec.rb index a6b96eb69..e1a135b76 100644 --- a/spec/flipper/instrumentation/statsd_subscriber_spec.rb +++ b/spec/flipper/instrumentation/statsd_subscriber_spec.rb @@ -78,4 +78,19 @@ def assert_counter(metric) flipper[:stats].disable(user) assert_timer 'flipper.adapter.memory.disable' end + + context 'when client is nil' do + before do + described_class.client = nil + end + + it 'does not raise error' do + expect { flipper[:stats].enable(user) }.not_to raise_error + end + + it 'does not update metrics' do + flipper[:stats].enable(user) + expect(socket.buffer).to be_empty + end + end end