read-config-ng
Version:
Multi format configuration loader
59 lines (45 loc) • 1.58 kB
JavaScript
;
const expect = require('chai').expect,
json5 = require('~/lib/load/parse/json5');
describe('Json5.parse module test:', () => {
const validJson = { x: 'a' },
validJsonText = "{ x: 'a' }",
invalidJsonText = "{ x: 'a' y: 'b' }";
describe('should parseSync json5 document', () => {
it('and return object', () => {
const result = json5.parseSync(validJsonText);
expect(result).to.exist;
expect(result).to.be.eql(validJson);
});
it('and return error', () => {
expect(() => {
json5.parseSync(invalidJsonText);
}).to.throw();
});
});
describe('should parse json5 document', () => {
it('and return object', (done) => {
json5.parse(validJsonText, (err, result) => {
if (err) return done(err);
expect(result).to.exist;
expect(result).to.be.eql(validJson);
done();
});
});
it('and return empty object on empty json', (done) => {
json5.parse('', (err, result) => {
if (err) return done(err);
expect(result).to.exist;
expect(result).to.be.eql({});
done();
});
});
it('and return error', (done) => {
json5.parse(invalidJsonText, (err, result) => {
expect(err).to.exist;
expect(result).to.not.exist;
done();
});
});
});
});