rttc
Version:
Runtime type-checking for JavaScript.
33 lines (26 loc) • 1.43 kB
JavaScript
var util = require('util');
var assert = require('assert');
var _ = require('@sailshq/lodash');
var rttc = require('../');
describe('.stringify()', function() {
it('should return a string in the general case', function() {
assert.strictEqual(typeof rttc.stringify('foo'), 'string');
assert.strictEqual(typeof rttc.stringify(''), 'string');
assert.strictEqual(typeof rttc.stringify(2323), 'string');
assert.strictEqual(typeof rttc.stringify(true), 'string');
assert.strictEqual(typeof rttc.stringify(null), 'string');
assert.strictEqual(typeof rttc.stringify(Infinity), 'string');
assert.strictEqual(typeof rttc.stringify(-Infinity), 'string');
assert.strictEqual(typeof rttc.stringify(NaN), 'string');
assert.strictEqual(typeof rttc.stringify(new Error('wat')), 'string');
assert.strictEqual(typeof rttc.stringify(new Buffer('stuff')), 'string');
assert.strictEqual(typeof rttc.stringify({x:'foo',z: [{a:4}]}), 'string');
});
it('should return `"null"` (as a string) when attempting to stringify `undefined` with `allowNull` enabled', function() {
assert.strictEqual(rttc.stringify(undefined, true), 'null');
});
it('should return `undefined` when attempting to stringify `undefined` with `allowNull` disabled (or unspecified)', function() {
assert(_.isUndefined(rttc.stringify(undefined, false)));
assert(_.isUndefined(rttc.stringify(undefined)));
});
});