@platform/state
Version:
A small, simple, strongly typed, [rx/observable] state-machine.
97 lines (96 loc) • 3.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var _1 = require(".");
var test_1 = require("../test");
var Identity = _1.TreeIdentity;
describe('TreeIdentity', function () {
it('format( namespace, key )', function () {
var test = function (namespace, key, expected) {
var res = Identity.format(namespace, key);
(0, test_1.expect)(res).to.eql(expected);
};
test('foo', 'bar', 'foo:bar');
test('foo:zoo', 'bar', 'foo:zoo:bar');
test('ns:foo:A1', 'node', 'ns:foo:A1:node');
test('', 'bar', ':bar');
test('foo', '', 'foo:');
});
it('hasNamespace', function () {
var test = function (input, expected) {
var res = Identity.hasNamespace(input);
(0, test_1.expect)(res).to.eql(expected);
};
test('tree-foo:bar', true);
test(' tree-foo:bar ', true);
test('ns:bar', true);
test('ns:foo:A1', true);
test(':bar', false);
test('bar', false);
});
it('stripNamespace', function () {
var test = function (input, expected) {
var res = Identity.stripNamespace(input);
(0, test_1.expect)(res).to.eql(expected);
};
test('tree-foo:bar', 'bar');
test(' tree-foo:bar ', 'bar');
test('bar', 'bar');
test('', '');
test('tree-foo:', '');
test(' tree-foo: ', '');
test('foo:bar', 'bar');
test(':bar', 'bar');
test(' :bar ', 'bar');
test('ns:foo:A1:node', 'node');
});
it('parse', function () {
var test = function (input, namespace, key) {
var res = Identity.parse(input);
var id = namespace ? "".concat(namespace, ":").concat(key) : key;
(0, test_1.expect)(res).to.eql({ namespace: namespace, key: key, id: id });
};
test('foo:bar', 'foo', 'bar');
test(' tree-foo:bar ', 'tree-foo', 'bar');
test('foo', '', 'foo');
test('foo:bar', 'foo', 'bar');
test('foo:bar:zoo', 'foo:bar', 'zoo');
test('ns:foo:A1:node', 'ns:foo:A1', 'node');
test('ns:foo:node', 'ns:foo', 'node');
test('', '', '');
test(' ', '', '');
});
it('namespace', function () {
var test = function (input, namespace) {
var res = Identity.namespace(input);
(0, test_1.expect)(res).to.eql(namespace);
};
test('foo:bar', 'foo');
test('ns:foo:A1:node', 'ns:foo:A1');
test('tree-foo:bar', 'tree-foo');
test(' foo:bar ', 'foo');
test('bar', '');
test(' bar ', '');
test('', '');
test(undefined, '');
});
it('key', function () {
var test = function (key, expected) {
(0, test_1.expect)(Identity.key(key)).to.eql(expected);
};
test('', '');
test(' ', '');
test('foo', 'foo');
test(' foo ', 'foo');
test('tree-foo:bar', 'bar');
test('ns:foo:A1:node', 'node');
});
it('cuid', function () {
var cuid = Identity.cuid();
(0, test_1.expect)(cuid.length).to.greaterThan(20);
});
it('slug', function () {
var slug = Identity.slug();
(0, test_1.expect)(slug.length).to.greaterThan(5);
(0, test_1.expect)(slug.length).to.lessThan(10);
});
});