From 7f6e7e86c6d30c760b3ed74433b1788b6ec53d95 Mon Sep 17 00:00:00 2001 From: Holger Just Date: Sat, 27 Jan 2018 00:21:47 +0100 Subject: [PATCH] Add tests to ensure the the Message encoder can deal with uncommon messages --- spec/rackstash/encoder/message_spec.rb | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/spec/rackstash/encoder/message_spec.rb b/spec/rackstash/encoder/message_spec.rb index c2c3c31..e07abde 100644 --- a/spec/rackstash/encoder/message_spec.rb +++ b/spec/rackstash/encoder/message_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true # -# Copyright 2017 Holger Just +# Copyright 2017 - 2018 Holger Just # # This software may be modified and distributed under the terms # of the MIT license. See the LICENSE.txt file for details. @@ -19,6 +19,17 @@ describe Rackstash::Encoder::Message do expect(encoder.encode(event)).to eql "\n\t \nline1\nline2\n \n\t\n" end + it 'returns an empty with an empty message' do + event = { 'message' => [], 'foo' => 'bar' } + expect(encoder.encode(event)).to eql '' + + event = { 'message' => '', 'foo' => 'bar' } + expect(encoder.encode(event)).to eql '' + + event = { 'message' => nil, 'foo' => 'bar' } + expect(encoder.encode(event)).to eql '' + end + context 'with prefix_fields' do let(:tagged) { [:sym, 'field', 'tags'] } @@ -56,9 +67,20 @@ describe Rackstash::Encoder::Message do expect(encoder.encode(event)).to eql "line1\nline2\n" end + it 'adds the prefix to a single string' do + event = { 'message' => 'msg', 'field' => 'BXC' } + expect(encoder.encode(event)).to eql '[BXC] msg' + end + it 'does not prefix fields on an empty message' do event = { 'message' => [], 'tags' => ['foo', 'bar'] } expect(encoder.encode(event)).to eql '' + + event = { 'message' => [], 'tags' => ['foo', 'bar'] } + expect(encoder.encode(event)).to eql '' + + event = { 'message' => [], 'tags' => ['foo', 'bar'] } + expect(encoder.encode(event)).to eql '' end it 'prefixes fields with a single newline' do