xl-infinite-tree
Version:
A browser-ready tree library that can efficiently display a large amount of data using infinite scrolling.
45 lines (39 loc) • 1.4 kB
JavaScript
import { test } from 'tap';
import { get, trim } from '../src/utilities';
test('get', (t) => {
const object = {
props: {
id: 1,
label: 'My Company',
count: 2,
foo: {
bar: {
baz: 'foo/bar/baz',
' baz ': 'foo/bar/ baz '
}
},
data: [
{ name: 'alpha', value: 0 },
{ name: 'beta', value: 0 }
]
}
};
t.equal(get(object, '["props"]["data"][0].name'), 'alpha');
t.equal(get(object, '["props"]["data"][1].name'), 'beta');
t.equal(get(object, 'props["foo"]["bar"][ " baz " ]'), 'foo/bar/ baz ');
t.equal(get(object, 'props["foo"]["bar"][" baz "]'), 'foo/bar/ baz ');
t.equal(get(object, 'props["foo"]["bar"]["baz"]'), 'foo/bar/baz');
t.equal(get(object, 'props["foo"]["bar"].baz'), 'foo/bar/baz');
t.equal(get(object, 'props["foo"].bar["baz"]'), 'foo/bar/baz');
t.equal(get(object, 'props.foo.bar.baz'), 'foo/bar/baz');
t.equal(get(object, 'props.id'), 1);
t.equal(get(object, 'props.idx'), undefined);
t.equal(get(object, 'props.idx', 0), 0);
t.end();
});
test('trim', (t) => {
t.equal(trim(' [ "props" ] ', '\'"[] '), 'props');
t.equal(trim('["props"]', '"[]'), 'props');
t.equal(trim('[props]', '[]'), 'props');
t.end();
});