54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
|
var logfmt = require('../logfmt'),
|
||
|
through = require('through'),
|
||
|
stream = require('stream'),
|
||
|
assert = require('assert');
|
||
|
|
||
|
//avoid test bleeding
|
||
|
var logfmt = new logfmt;
|
||
|
|
||
|
suite('logfmt.streamParser', function() {
|
||
|
test("parses all the lines", function(done){
|
||
|
var s = new stream.Readable;
|
||
|
s._read = function(){};
|
||
|
s.push('hello=kitty\n');
|
||
|
s.push('foo=bar\n');
|
||
|
s.push('path=/\n');
|
||
|
s.push(null);
|
||
|
|
||
|
var matches = [{path: '/'}, {foo: 'bar'}, {hello: 'kitty'}];
|
||
|
s.pipe(logfmt.streamParser()).pipe(through(function(data){
|
||
|
assert.deepEqual(data, matches.pop())
|
||
|
},function(){
|
||
|
done()
|
||
|
}))
|
||
|
})
|
||
|
|
||
|
// is this the desired behavior?
|
||
|
test("handles empty data", function(done){
|
||
|
var s = new stream.Readable;
|
||
|
s._read = function(){};
|
||
|
s.push('');
|
||
|
s.push(null);
|
||
|
|
||
|
s.pipe(logfmt.streamParser()).pipe(through(function(data){
|
||
|
assert.deepEqual({}, data);
|
||
|
},function(){
|
||
|
done()
|
||
|
}))
|
||
|
})
|
||
|
|
||
|
// is this the desired behavior?
|
||
|
test("handles empty lines", function(done){
|
||
|
var s = new stream.Readable;
|
||
|
s._read = function(){};
|
||
|
s.push(" \n");
|
||
|
s.push(null);
|
||
|
|
||
|
s.pipe(logfmt.streamParser()).pipe(through(function(data){
|
||
|
assert.deepEqual({}, data);
|
||
|
},function(){
|
||
|
done()
|
||
|
}))
|
||
|
})
|
||
|
})
|