UNPKG

funval

Version:

A minimalist library for data validation using functions interfaces.

112 lines (64 loc) 11.4 kB
"use strict"; require("mocha"); var _chai = require("chai"); var _string = require("./string"); describe('string', () => { it('ContentString', () => { _chai.assert.equal((0, _string.ContentString)('foo'), 'foo'); _chai.assert.equal((0, _string.ContentString)('foo '), 'foo '); _chai.assert.equal((0, _string.ContentString)(123.3), '123.3'); _chai.assert.equal((0, _string.ContentString)(false), 'false'); _chai.assert.equal((0, _string.ContentString)('foo \n123\n\n '), 'foo \n123\n\n '); _chai.assert.equal((0, _string.ContentString)(['foo', 'bar']), 'foo,bar'); _chai.assert.throws(() => (0, _string.ContentString)(null), TypeError); _chai.assert.throws(() => (0, _string.ContentString)(undefined), TypeError); _chai.assert.throws(() => (0, _string.ContentString)({}), TypeError); _chai.assert.throws(() => (0, _string.ContentString)({ foo: 1 }), TypeError); _chai.assert.throws(() => (0, _string.ContentString)(' '), TypeError); _chai.assert.throws(() => (0, _string.ContentString)(''), TypeError); _chai.assert.throws(() => (0, _string.ContentString)('\n\n'), TypeError); _chai.assert.throws(() => (0, _string.ContentString)('\n \n'), TypeError); }); it('TrimString', () => { _chai.assert.equal((0, _string.TrimString)('foo'), 'foo'); _chai.assert.equal((0, _string.TrimString)('foo '), 'foo'); _chai.assert.equal((0, _string.TrimString)(123.3), '123.3'); _chai.assert.equal((0, _string.TrimString)(false), 'false'); _chai.assert.equal((0, _string.TrimString)('foo \n123\n\n '), 'foo \n123'); _chai.assert.equal((0, _string.TrimString)(['foo', 'bar']), 'foo,bar'); _chai.assert.throws(() => (0, _string.TrimString)(null), TypeError); _chai.assert.throws(() => (0, _string.TrimString)(undefined), TypeError); _chai.assert.throws(() => (0, _string.TrimString)({}), TypeError); _chai.assert.throws(() => (0, _string.TrimString)({ foo: 1 }), TypeError); _chai.assert.throws(() => (0, _string.TrimString)(' '), TypeError); _chai.assert.throws(() => (0, _string.TrimString)(''), TypeError); _chai.assert.throws(() => (0, _string.TrimString)('\n\n'), TypeError); _chai.assert.throws(() => (0, _string.TrimString)('\n \n'), TypeError); }); it('StringRange', () => { const basic = (0, _string.StringRange)(3, 10, 'my error'); _chai.assert.equal(basic('1234'), '1234'); _chai.assert.equal(basic('123'), '123'); _chai.assert.equal(basic('1234567890'), '1234567890'); _chai.assert.equal(basic('123 '), '123 '); _chai.assert.throws(() => basic('ab'), TypeError); _chai.assert.throws(() => basic('12345678901'), /^my error$/); const start = (0, _string.StringRange)(3, null); _chai.assert.equal(start('1234'), '1234'); _chai.assert.equal(start('123'), '123'); _chai.assert.equal(start('1234567890'), '1234567890'); _chai.assert.equal(start('1234567890123'), '1234567890123'); _chai.assert.throws(() => start('ab'), TypeError); const end = (0, _string.StringRange)(null, 10); _chai.assert.equal(end('1234'), '1234'); _chai.assert.equal(end('123'), '123'); _chai.assert.equal(end('1234567890'), '1234567890'); _chai.assert.equal(end('12'), '12'); _chai.assert.throws(() => end('1234567890123'), TypeError); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0b3JzL3N0cmluZy50ZXN0LnRzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiaXQiLCJhc3NlcnQiLCJlcXVhbCIsInRocm93cyIsIlR5cGVFcnJvciIsInVuZGVmaW5lZCIsImZvbyIsImJhc2ljIiwic3RhcnQiLCJlbmQiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBRUFBLFFBQVEsQ0FBQyxRQUFELEVBQVcsTUFBTTtBQUN2QkMsRUFBQUEsRUFBRSxDQUFDLGVBQUQsRUFBa0IsTUFBTTtBQUN4QkMsaUJBQU9DLEtBQVAsQ0FBYSwyQkFBYyxLQUFkLENBQWIsRUFBbUMsS0FBbkM7O0FBQ0FELGlCQUFPQyxLQUFQLENBQWEsMkJBQWMsTUFBZCxDQUFiLEVBQW9DLE1BQXBDOztBQUNBRCxpQkFBT0MsS0FBUCxDQUFhLDJCQUFjLEtBQWQsQ0FBYixFQUFtQyxPQUFuQzs7QUFDQUQsaUJBQU9DLEtBQVAsQ0FBYSwyQkFBYyxLQUFkLENBQWIsRUFBbUMsT0FBbkM7O0FBQ0FELGlCQUFPQyxLQUFQLENBQWEsMkJBQWMsZ0JBQWQsQ0FBYixFQUE4QyxnQkFBOUM7O0FBQ0FELGlCQUFPQyxLQUFQLENBQWEsMkJBQWMsQ0FBQyxLQUFELEVBQVEsS0FBUixDQUFkLENBQWIsRUFBNEMsU0FBNUM7O0FBRUFELGlCQUFPRSxNQUFQLENBQWMsTUFBTSwyQkFBYyxJQUFkLENBQXBCLEVBQXlDQyxTQUF6Qzs7QUFDQUgsaUJBQU9FLE1BQVAsQ0FBYyxNQUFNLDJCQUFjRSxTQUFkLENBQXBCLEVBQThDRCxTQUE5Qzs7QUFDQUgsaUJBQU9FLE1BQVAsQ0FBYyxNQUFNLDJCQUFjLEVBQWQsQ0FBcEIsRUFBdUNDLFNBQXZDOztBQUNBSCxpQkFBT0UsTUFBUCxDQUFjLE1BQU0sMkJBQWM7QUFBRUcsTUFBQUEsR0FBRyxFQUFFO0FBQVAsS0FBZCxDQUFwQixFQUErQ0YsU0FBL0M7O0FBQ0FILGlCQUFPRSxNQUFQLENBQWMsTUFBTSwyQkFB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S0FBUCxDQUFhTSxLQUFLLENBQUMsZUFBRCxDQUFsQixFQUFxQyxlQUFyQzs7QUFDQVAsaUJBQU9FLE1BQVAsQ0FBYyxNQUFNSyxLQUFLLENBQUMsSUFBRCxDQUF6QixFQUFpQ0osU0FBakM7O0FBRUEsVUFBTUssR0FBRyxHQUFHLHlCQUFZLElBQVosRUFBa0IsRUFBbEIsQ0FBWjs7QUFFQVIsaUJBQU9DLEtBQVAsQ0FBYU8sR0FBRyxDQUFDLE1BQUQsQ0FBaEIsRUFBMEIsTUFBMUI7O0FBQ0FSLGlCQUFPQyxLQUFQLENBQWFPLEdBQUcsQ0FBQyxLQUFELENBQWhCLEVBQXlCLEtBQXpCOztBQUNBUixpQkFBT0MsS0FBUCxDQUFhTyxHQUFHLENBQUMsWUFBRCxDQUFoQixFQUFnQyxZQUFoQzs7QUFDQVIsaUJBQU9DLEtBQVAsQ0FBYU8sR0FBRyxDQUFDLElBQUQsQ0FBaEIsRUFBd0IsSUFBeEI7O0FBQ0FSLGlCQUFPRSxNQUFQLENBQWMsTUFBTU0sR0FBRyxDQUFDLGVBQUQsQ0FBdkIsRUFBMENMLFNBQTFDO0FBQ0QsR0F6QkMsQ0FBRjtBQTBCRCxDQS9ETyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdtb2NoYSc7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdjaGFpJztcblxuaW1wb3J0IHsgQ29udGVudFN0cmluZywgU3RyaW5nUmFuZ2UsIFRyaW1TdHJpbmcgfSBmcm9tICcuL3N0cmluZyc7XG5cbmRlc2NyaWJlKCdzdHJpbmcnLCAoKSA9PiB7XG4gIGl0KCdDb250ZW50U3RyaW5nJywgKCkgPT4ge1xuICAgIGFzc2VydC5lcXVhbChDb250ZW50U3RyaW5nKCdmb28nKSwgJ2ZvbycpO1xuICAgIGFzc2VydC5lcXVhbChDb250ZW50U3RyaW5nKCdmb28gJyksICdmb28gJyk7XG4gICAgYXNzZXJ0LmVxdWFsKENvbnRlbnRTdHJpbmcoMTIzLjMpLCAnMTIzLjMnKTtcbiAgICBhc3NlcnQuZXF1YWwoQ29udGVudFN0cmluZyhmYWxzZSksICdmYWxzZScpO1xuICAgIGFzc2VydC5lcXVhbChDb250ZW50U3RyaW5nKCdmb28gXFxuMTIzXFxuXFxuICcpLCAnZm9vIFxcbjEyM1xcblxcbiAnKTtcbiAgICBhc3NlcnQuZXF1YWwoQ29udGVudFN0cmluZyhbJ2ZvbycsICdiYXInXSksICdmb28sYmFyJyk7XG5cbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IENvbnRlbnRTdHJpbmcobnVsbCksIFR5cGVFcnJvcik7XG4gICAgYXNzZXJ0LnRocm93cygoKSA9PiBDb250ZW50U3RyaW5nKHVuZGVmaW5lZCksIFR5cGVFcnJvcik7XG4gICAgYXNzZXJ0LnRocm93cygoKSA9PiBDb250ZW50U3RyaW5nKHt9KSwgVHlwZUVycm9yKTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IENvbnRlbnRTdHJpbmcoeyBmb286IDEgfSksIFR5cGVFcnJvcik7XG4gICAgYXNzZXJ0LnRocm93cygoKSA9PiBDb250ZW50U3RyaW5nKCcgICAnKSwgVHlwZUVycm9yKTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IENvbnRlbnRTdHJpbmcoJycpLCBUeXBlRXJyb3IpO1xuICAgIGFzc2VydC50aHJvd3MoKCkgPT4gQ29udGVudFN0cmluZygnXFxuXFxuJyksIFR5cGVFcnJvcik7XG4gICAgYXNzZXJ0LnRocm93cygoKSA9PiBDb250ZW50U3RyaW5nKCdcXG4gXFxuJyksIFR5cGVFcnJvcik7XG4gIH0pO1xuXG4gIGl0KCdUcmltU3RyaW5nJywgKCkgPT4ge1xuICAgIGFzc2VydC5lcXVhbChUcmltU3RyaW5nKCdmb28nKSwgJ2ZvbycpO1xuICAgIGFzc2VydC5lcXVhbChUcmltU3RyaW5nKCdmb28gJyksICdmb28nKTtcbiAgICBhc3NlcnQuZXF1YWwoVHJpbVN0cmluZygxMjMuMyksICcxMjMuMycpO1xuICAgIGFzc2VydC5lcXVhbChUcmltU3RyaW5nKGZhbHNlKSwgJ2ZhbHNlJyk7XG4gICAgYXNzZXJ0LmVxdWFsKFRyaW1TdHJpbmcoJ2ZvbyBcXG4xMjNcXG5cXG4gJyksICdmb28gXFxuMTIzJyk7XG4gICAgYXNzZXJ0LmVxdWFsKFRyaW1TdHJpbmcoWydmb28nLCAnYmFyJ10pLCAnZm9vLGJhcicpO1xuXG4gICAgYXNzZXJ0LnRocm93cygoKSA9PiBUcmltU3RyaW5nKG51bGwpLCBUeXBlRXJyb3IpO1xuICAgIGFzc2VydC50aHJvd3MoKCkgPT4gVHJpbVN0cmluZyh1bmRlZmluZWQpLCBUeXBlRXJyb3IpO1xuICAgIGFzc2VydC50aHJvd3MoKCkgPT4gVHJpbVN0cmluZyh7fSksIFR5cGVFcnJvcik7XG4gICAgYXNzZXJ0LnRocm93cygoKSA9PiBUcmltU3RyaW5nKHsgZm9vOiAxIH0pLCBUeXBlRXJyb3IpO1xuICAgIGFzc2VydC50aHJvd3MoKCkgPT4gVHJpbVN0cmluZygnICAgJyksIFR5cGVFcnJvcik7XG4gICAgYXNzZXJ0LnRocm93cygoKSA9PiBUcmltU3RyaW5nKCcnKSwgVHlwZUVycm9yKTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IFRyaW1TdHJpbmcoJ1xcblxcbicpLCBUeXBlRXJyb3IpO1xuICAgIGFzc2VydC50aHJvd3MoKCkgPT4gVHJpbVN0cmluZygnXFxuIFxcbicpLCBUeXBlRXJyb3IpO1xuICB9KTtcblxuICBpdCgnU3RyaW5nUmFuZ2UnLCAoKSA9PiB7XG4gICAgY29uc3QgYmFzaWMgPSBTdHJpbmdSYW5nZSgzLCAxMCwgJ215IGVycm9yJyk7XG5cbiAgICBhc3NlcnQuZXF1YWwoYmFzaWMoJzEyMzQnKSwgJzEyMzQnKTtcbiAgICBhc3NlcnQuZXF1YWwoYmFzaWMoJzEyMycpLCAnMTIzJyk7XG4gICAgYXNzZXJ0LmVxdWFsKGJhc2ljKCcxMjM0NTY3ODkwJyksICcxMjM0NTY3ODkwJyk7XG4gICAgYXNzZXJ0LmVxdWFsKGJhc2ljKCcxMjMgJyksICcxMjMgJyk7XG4gICAgYXNzZXJ0LnRocm93cygoKSA9PiBiYXNpYygnYWInKSwgVHlwZUVycm9yKTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IGJhc2ljKCcxMjM0NTY3ODkwMScpLCAvXm15IGVycm9yJC8pO1xuXG4gICAgY29uc3Qgc3RhcnQgPSBTdHJpbmdSYW5nZSgzLCBudWxsKTtcblxuICAgIGFzc2VydC5lcXVhbChzdGFydCgnMTIzNCcpLCAnMTIzNCcpO1xuICAgIGFzc2VydC5lcXVhbChzdGFydCgnMTIzJyksICcxMjMnKTtcbiAgICBhc3NlcnQuZXF1YWwoc3RhcnQoJzEyMzQ1Njc4OTAnKSwgJzEyMzQ1Njc4OTAnKTtcbiAgICBhc3NlcnQuZXF1YWwoc3RhcnQoJzEyMzQ1Njc4OTAxMjMnKSwgJzEyMzQ1Njc4OTAxMjMnKTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IHN0YXJ0KCdhYicpLCBUeXBlRXJyb3IpO1xuXG4gICAgY29uc3QgZW5kID0gU3RyaW5nUmFuZ2UobnVsbCwgMTApO1xuXG4gICAgYXNzZXJ0LmVxdWFsKGVuZCgnMTIzNCcpLCAnMTIzNCcpO1xuICAgIGFzc2VydC5lcXVhbChlbmQoJzEyMycpLCAnMTIzJyk7XG4gICAgYXNzZXJ0LmVxdWFsKGVuZCgnMTIzNDU2Nzg5MCcpLCAnMTIzNDU2Nzg5MCcpO1xuICAgIGFzc2VydC5lcXVhbChlbmQoJzEyJyksICcxMicpO1xuICAgIGFzc2VydC50aHJvd3MoKCkgPT4gZW5kKCcxMjM0NTY3ODkwMTIzJyksIFR5cGVFcnJvcik7XG4gIH0pO1xufSk7XG4iXX0=