UNPKG

tree-sort

Version:

tree-sort data structure in node

54 lines (48 loc) 2.38 kB
/*eslint-env mocha*/ /*eslint-disable strict*/ var assert = require('assert'); describe('tree', function(){ var Tree = require('../index.js'); it('should output mlr right', function(){ var tree = new Tree(); tree.add('2.1.1.1', '2.1.1'); tree.add('2.1.1.2', '2.1.1'); tree.add('1.1', '1'); tree.add('1.2', '1'); tree.add('1.3', '1'); tree.add('2.1', '2'); tree.add('2.1.1', '2.1'); tree.add('2.1.2', '2.1'); var ids = tree.mlr().join(','); var exp = '1,1.1,1.2,1.3,2,2.1,2.1.1,2.1.1.1,2.1.1.2,2.1.2'; assert.equal(ids, exp); }); it('should output hier right', function(){ var tree = new Tree(); tree.add('2.1.1.1', '2.1.1'); tree.add('2.1.1.2', '2.1.1'); tree.add('1.1', '1'); tree.add('1.2', '1'); tree.add('1.3', '1'); tree.add('2.1', '2'); tree.add('2.1.1', '2.1'); tree.add('2.1.2', '2.1'); var ids = tree.hier(); var exp = '[{"id":"1","children":[{"id":"1.1","children":[]},{"id":"1.2","children":[]},{"id":"1.3","children":[]}]},{"id":"2","children":[{"id":"2.1","children":[{"id":"2.1.1","children":[{"id":"2.1.1.1","children":[]},{"id":"2.1.1.2","children":[]}]},{"id":"2.1.2","children":[]}]}]}]'; assert.equal(JSON.stringify(ids), exp); }); it('should output hier with custom cb right', function(){ var tree = new Tree(); tree.add('2.1.1.1', '2.1.1', null, {name: '2.1.1.1'}); tree.add('2.1.1.2', '2.1.1', null, {name: '2.1.1.2'}); tree.add('1.1', '1', null, {name: '1.1'}); tree.add('1.2', '1', null, {name: '1.2'}); tree.add('1.3', '1', null, {name: '1.3'}); tree.add('2.1', '2', null, {name: '2.1'}); tree.add('2.1.1', '2.1', null, {name: '2.1.1'}); tree.add('2.1.2', '2.1', null, {name: '2.1.2'}); var ids = tree.hier(null, false, function(id, seq, data){ return {id: id, name: data&&data.name}; }); var exp = '[{"id":"1","children":[{"id":"1.1","name":"1.1","children":[]},{"id":"1.2","name":"1.2","children":[]},{"id":"1.3","name":"1.3","children":[]}]},{"id":"2","children":[{"id":"2.1","name":"2.1","children":[{"id":"2.1.1","name":"2.1.1","children":[{"id":"2.1.1.1","name":"2.1.1.1","children":[]},{"id":"2.1.1.2","name":"2.1.1.2","children":[]}]},{"id":"2.1.2","name":"2.1.2","children":[]}]}]}]'; assert.equal(JSON.stringify(ids), exp); }); });