@tdb/util
Version:
Shared helpers and utilities.
88 lines • 3.87 kB
JavaScript
;
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