From dc3d2b20bf022b06b56e82ada08819c6fb3d9310 Mon Sep 17 00:00:00 2001 From: Holger Just Date: Tue, 18 Jul 2017 23:28:26 +0200 Subject: [PATCH] Add tests and clarify edge-case for Rackstash.severity_label --- lib/rackstash.rb | 1 + spec/rackstash_spec.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lib/rackstash.rb b/lib/rackstash.rb index 60dae1e..6001537 100644 --- a/lib/rackstash.rb +++ b/lib/rackstash.rb @@ -75,6 +75,7 @@ module Rackstash def self.severity_label(severity) if severity.is_a?(Integer) + return SEVERITY_LABELS.last if severity < 0 SEVERITY_LABELS[severity] || SEVERITY_LABELS.last else severity = SEVERITY_NAMES.fetch(severity.to_s.downcase, UNKNOWN) diff --git a/spec/rackstash_spec.rb b/spec/rackstash_spec.rb index 7da0266..3a716a6 100644 --- a/spec/rackstash_spec.rb +++ b/spec/rackstash_spec.rb @@ -57,4 +57,30 @@ describe Rackstash do expect(Rackstash::UNDEFINED).not_to eql true expect(Rackstash::UNDEFINED).not_to eql 42 end + + describe '.severity_label' do + it 'returns the label for an integer severity' do + expect(described_class.severity_label(0)).to eql 'DEBUG' + expect(described_class.severity_label(4)).to eql 'FATAL' + expect(described_class.severity_label(5)).to eql 'ANY' + end + + it 'returns ANY for out-of-range severities' do + expect(described_class.severity_label(-3)).to eql 'ANY' + expect(described_class.severity_label(42)).to eql 'ANY' + end + + it 'returns the label for a named severity' do + expect(described_class.severity_label('DeBuG')).to eql 'DEBUG' + expect(described_class.severity_label('warn')).to eql 'WARN' + expect(described_class.severity_label(:error)).to eql 'ERROR' + expect(described_class.severity_label('UnknoWn')).to eql 'ANY' + end + + it 'returns ANY for unknown severity names' do + expect(described_class.severity_label('foo')).to eql 'ANY' + expect(described_class.severity_label(:test)).to eql 'ANY' + expect(described_class.severity_label(nil)).to eql 'ANY' + end + end end