54 lines
1.7 KiB
JavaScript
54 lines
1.7 KiB
JavaScript
|
var logfmt = require('../logfmt'),
|
||
|
assert = require('assert');
|
||
|
|
||
|
suite('logfmt.stringify', function() {
|
||
|
test("simple key value pairs", function(){
|
||
|
var data = {foo: 'bar', a: 14}
|
||
|
assert.equal("foo=bar a=14", logfmt.stringify(data))
|
||
|
})
|
||
|
|
||
|
test("true and false", function(){
|
||
|
var data = {foo: true, bar: false}
|
||
|
assert.equal("foo=true bar=false", logfmt.stringify(data))
|
||
|
})
|
||
|
|
||
|
test("quotes strings with spaces in them", function(){
|
||
|
var data = {foo: "hello kitty"}
|
||
|
assert.equal("foo=\"hello kitty\"", logfmt.stringify(data))
|
||
|
})
|
||
|
|
||
|
test("quotes strings with equals in them", function(){
|
||
|
var data = {foo: "hello=kitty"}
|
||
|
assert.equal("foo=\"hello=kitty\"", logfmt.stringify(data))
|
||
|
})
|
||
|
|
||
|
test("escapes quotes within strings with spaces in them", function(){
|
||
|
var data = {foo: 'hello my "friend"'}
|
||
|
assert.equal('foo="hello my \\"friend\\""', logfmt.stringify(data))
|
||
|
var data = {foo: 'hello my "friend" whom I "love"'}
|
||
|
assert.equal('foo="hello my \\"friend\\" whom I \\"love\\""', logfmt.stringify(data))
|
||
|
})
|
||
|
|
||
|
test("escapes backslahes within strings", function(){
|
||
|
var data = {foo: 'why would you use \\LaTeX?'}
|
||
|
assert.equal('foo="why would you use \\\\LaTeX?"', logfmt.stringify(data))
|
||
|
})
|
||
|
|
||
|
test("undefined is nothing", function(){
|
||
|
var data = {foo: undefined}
|
||
|
assert.equal("foo=", logfmt.stringify(data))
|
||
|
})
|
||
|
|
||
|
test("null is nothing", function(){
|
||
|
var data = {foo: null}
|
||
|
assert.equal("foo=", logfmt.stringify(data))
|
||
|
})
|
||
|
|
||
|
test("object with inherited properties", function(){
|
||
|
var defaults = {foo: 42, bar: "abc"}
|
||
|
var options = Object.create(defaults)
|
||
|
options.foo = 13
|
||
|
assert.equal('foo=13 bar=abc', logfmt.stringify(options));
|
||
|
})
|
||
|
})
|