1
0
mirror of https://github.com/meineerde/rackstash.git synced 2025-12-19 15:01:12 +00:00

Add tests to ensure the the Message encoder can deal with uncommon messages

This commit is contained in:
Holger Just 2018-01-27 00:21:47 +01:00
parent e805d69d84
commit 7f6e7e86c6

View File

@ -1,6 +1,6 @@
# frozen_string_literal: true # frozen_string_literal: true
# #
# Copyright 2017 Holger Just # Copyright 2017 - 2018 Holger Just
# #
# This software may be modified and distributed under the terms # This software may be modified and distributed under the terms
# of the MIT license. See the LICENSE.txt file for details. # 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" expect(encoder.encode(event)).to eql "\n\t \nline1\nline2\n \n\t\n"
end 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 context 'with prefix_fields' do
let(:tagged) { [:sym, 'field', 'tags'] } let(:tagged) { [:sym, 'field', 'tags'] }
@ -56,9 +67,20 @@ describe Rackstash::Encoder::Message do
expect(encoder.encode(event)).to eql "line1\nline2\n" expect(encoder.encode(event)).to eql "line1\nline2\n"
end 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 it 'does not prefix fields on an empty message' do
event = { 'message' => [], 'tags' => ['foo', 'bar'] } event = { 'message' => [], 'tags' => ['foo', 'bar'] }
expect(encoder.encode(event)).to eql '' 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 end
it 'prefixes fields with a single newline' do it 'prefixes fields with a single newline' do