wsemi
Version:
A support package for web developer.
85 lines (73 loc) • 2.62 kB
JavaScript
import assert from 'assert'
import composeToTree from '../src/composeToTree.mjs'
describe(`composeToTree`, function() {
let data = [
{
id: 1,
text: '1-a',
},
{
id: 2,
text: '2-b',
},
{
id: 3,
text: '3-c',
parentId: 2,
},
{
id: 4,
text: '4-d',
parentId: 2,
},
{
id: 5,
text: '5-e',
parentId: 3,
},
{
id: 6,
text: 'empty',
},
]
let cinp = JSON.stringify(data)
let cout1 = `[{"id":1,"text":"1-a"},{"id":2,"text":"2-b","children":[{"id":3,"text":"3-c","parentId":2,"children":[{"id":5,"text":"5-e","parentId":3}]},{"id":4,"text":"4-d","parentId":2}]},{"id":6,"text":"empty"}]`
it(`should return ${cout1} when input ${cinp}`, function() {
let r = composeToTree(data)
r = JSON.stringify(r)
let rr = cout1
assert.strict.deepStrictEqual(r, rr)
})
let cout2 = `[{"$level":0,"$parents":[],"id":1,"text":"1-a"},{"$level":0,"$parents":[],"id":2,"text":"2-b","children":[{"$level":1,"$parents":[2],"id":3,"text":"3-c","parentId":2,"children":[{"$level":2,"$parents":[2,3],"id":5,"text":"5-e","parentId":3}]},{"$level":1,"$parents":[2],"id":4,"text":"4-d","parentId":2}]},{"$level":0,"$parents":[],"id":6,"text":"empty"}]`
it(`should return ${cout2} when input ${cinp}, { saveExtProps: true }`, function() {
let r = composeToTree(data, { saveExtProps: true })
r = JSON.stringify(r)
let rr = cout2
assert.strict.deepStrictEqual(r, rr)
})
it(`should return [] when input ''`, function() {
let r = composeToTree('')
let rr = []
assert.strict.deepStrictEqual(r, rr)
})
it(`should return [] when input []`, function() {
let r = composeToTree([])
let rr = []
assert.strict.deepStrictEqual(r, rr)
})
it(`should return [] when input {}`, function() {
let r = composeToTree({})
let rr = []
assert.strict.deepStrictEqual(r, rr)
})
it(`should return [] when input null`, function() {
let r = composeToTree(null)
let rr = []
assert.strict.deepStrictEqual(r, rr)
})
it(`should return [] when input undefined`, function() {
let r = composeToTree(undefined)
let rr = []
assert.strict.deepStrictEqual(r, rr)
})
})