UNPKG

@tdb/util

Version:
88 lines 3.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var chai_1 = require("chai"); var _1 = require("."); describe('queryString', function () { describe('toObject', function () { it('handles empty/nothing', function () { chai_1.expect(_1.queryString.toObject('')).to.eql({}); chai_1.expect(_1.queryString.toObject(' ')).to.eql({}); chai_1.expect(_1.queryString.toObject(undefined)).to.eql({}); chai_1.expect(_1.queryString.toObject()).to.eql({}); }); it('reads key:value (without "?" prefix)', function () { var result = _1.queryString.toObject('zoo=123'); chai_1.expect(result).to.eql({ zoo: '123' }); }); it('reads key:value (with "?" prefix)', function () { var result = _1.queryString.toObject('?search=abc'); chai_1.expect(result).to.eql({ search: 'abc' }); }); it('reads key:value (with "#" prefix)', function () { var result = _1.queryString.toObject('#search=abc&color=red'); chai_1.expect(result).to.eql({ search: 'abc', color: 'red' }); }); it('reads key:value with surrounding whitespaces', function () { chai_1.expect(_1.queryString.toObject(' ?filter=abc ')).to.eql({ filter: 'abc' }); chai_1.expect(_1.queryString.toObject(' search=cat ')).to.eql({ search: 'cat' }); }); it('reads a key with no value', function () { var result = _1.queryString.toObject('?red'); chai_1.expect(result).to.eql({ red: undefined }); }); it('multiple key:value pairs', function () { var result = _1.queryString.toObject('?color=red&width=50px'); chai_1.expect(result).to.eql({ color: 'red', width: '50px' }); }); it('decodeURIComponent', function () { var result = _1.queryString.toObject('?msg=into%20the%20wild'); chai_1.expect(result).to.eql({ msg: 'into the wild' }); }); it('supports specific generic type', function () { var result = _1.queryString.toObject('?bar=abc'); chai_1.expect(result.bar).to.eql('abc'); }); it('supports generic type <any>', function () { var result = _1.queryString.toObject('?size=32x36'); chai_1.expect(result.size).to.eql('32x36'); }); }); describe('valueAsFlag', function () { var test = function (value, result) { chai_1.expect(_1.queryString.valueAsFlag(value)).to.eql(result); }; it('is TRUE', function () { test('true', true); test(' true ', true); test('True', true); test('TRUE', true); }); it('is FALSE', function () { test('false', false); test(' false ', false); test('False', false); test('FALSE', false); test(undefined, false); test('something', false); test(['one', 'two'], false); }); }); describe('isFlag', function () { var test = function (keys, query, result) { chai_1.expect(_1.queryString.isFlag(keys, query)).to.eql(result); }; it('is TRUE', function () { test(['force', 'f'], { force: '' }, true); test(['force', 'f'], { f: '' }, true); test(['force', 'f'], { force: 'true' }, true); test(['force', 'f'], { f: 'true' }, true); }); it('is FALSE', function () { test(['force', 'f'], { force: undefined }, false); test(['force', 'f'], { force: 'false' }, false); test(['force', 'f'], { f: 'something' }, false); test(['force', 'f'], {}, false); }); }); }); //# sourceMappingURL=queryString.test.js.map