json-strify
Version:
Faster implementation of JSON.stringify
68 lines (51 loc) • 1.68 kB
JavaScript
const test = require('ava');
const strify = require('./json-strify');
test('stringify number', (t) => {
const instance = strify();
const obj = { a: 1 };
const str = instance(obj);
t.is(str, JSON.stringify(obj), 'Stringify Number not works as excepted');
});
test('stringify string', (t) => {
const instance = strify();
const obj = { b: 'string in object' };
const str = instance(obj);
t.is(str, JSON.stringify(obj), 'Stringify String not works as excepted');
const str2 = 'This is "string"';
const str2conv = instance(str2);
t.is(
str2conv,
JSON.stringify('This is "string"'),
'Stringify not works as excepted'
);
});
test('stringify boolean', (t) => {
const instance = strify();
const obj = { c: false };
const str = instance(obj);
t.is(str, JSON.stringify(obj), 'Stringify Boolean not works as excepted');
});
test('stringify array', (t) => {
const instance = strify();
const obj = { baz: [1, 'two'] };
const str = instance(obj);
t.is(str, JSON.stringify(obj), 'Stringify Array not works as excepted');
});
test('stringify object', (t) => {
const instance = strify();
const obj = { foo: { bar: 'baz' } };
const str = instance(obj);
t.is(str, JSON.stringify(obj), 'Stringify Object not works as excepted');
});
test('stringify circular', (t) => {
const instance = strify();
const obj = { foo: { bar: 'baz' } };
obj.foo.xyz = obj.foo;
obj.bar = [1, 2, [obj, { baz: obj.foo }]];
const str = instance(obj);
t.is(
str,
'{"foo":{"bar":"baz","xyz":"[Circular]"},"bar":[1,2,["[Circular]",{"baz":{"bar":"baz","xyz":"[Circular]"}}]]}',
'Stringify Object not works as excepted'
);
});