GT2/GT2-Android/node_modules/logfmt/test/stringify_test.js

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));
})
})