@platform/cell.schema
Version:
URI and database schemas for the `cell.os`.
73 lines (72 loc) • 2.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var test_1 = require("../test");
var _1 = require(".");
describe('encoding', function () {
it('escapePath => unescapePath', function () {
var test = function (input, expected) {
var escaped = _1.Encoding.escapePath(input);
(0, test_1.expect)(escaped).to.eql(expected);
(0, test_1.expect)(_1.Encoding.unescapePath(escaped)).to.eql(input);
};
test('', '');
test('foo', 'foo');
test('foo/bar', 'foo\\bar');
});
it('escapeNamespace => unescapeNamespace', function () {
var test = function (input, expected) {
var escaped = _1.Encoding.escapeNamespace(input);
(0, test_1.expect)(escaped).to.eql(expected);
(0, test_1.expect)(_1.Encoding.unescapeNamespace(escaped)).to.eql(input);
};
test('', '');
test('foo', 'foo');
test('foo.bar', 'foo__bar');
test('.foo', '__foo');
test('foo.', 'foo__');
});
it('escapeKey => unescapeKey', function () {
var test = function (input, encoded) {
var res = {
encoded: _1.Encoding.escapeKey(input),
decoded: _1.Encoding.unescapeKey(_1.Encoding.escapeKey(input)),
};
(0, test_1.expect)(res.encoded).to.eql(encoded);
(0, test_1.expect)(res.decoded).to.eql(input);
};
test('foo', 'foo');
test('foo|bar', 'foo|bar');
test('[foo]', '[foo]');
test('.foo', ':foo');
test('[.foo]', '[:foo]');
test('foo.png', 'foo:png');
test('foo.bar.baz', 'foo:bar:baz');
test('foo/bar', 'foo::bar');
test('foo/bar/baz', 'foo::bar::baz');
test('.foo.', ':foo:');
test('..foo...', '[::]foo[:::]');
test('...foo.', '[:::]foo:');
test('...foo.png', '[:::]foo:png');
test('...foo/bar..png', '[:::]foo::bar[::]png');
test('[..]foo[...]', '[[::]]foo[[:::]]');
});
describe('transform', function () {
it('transformKeys', function () {
var test = function (input, fn, expected) {
var escaped = _1.Encoding.transformKeys(input, fn);
(0, test_1.expect)(escaped).to.eql(expected);
};
test({}, _1.Encoding.escapePath, {});
test({ foo: 123 }, _1.Encoding.escapePath, { foo: 123 });
test({ 'foo/bar': 123 }, _1.Encoding.escapePath, { 'foo\\bar': 123 });
});
it('transformValues', function () {
var test = function (input, fn, expected) {
var escaped = _1.Encoding.transformValues(input, fn);
(0, test_1.expect)(escaped).to.eql(expected);
};
test({}, _1.Encoding.escapePath, {});
test({ foo: 'foo/bar' }, _1.Encoding.escapePath, { foo: 'foo\\bar' });
});
});
});