wsemi
Version:
A support package for web developer.
82 lines (71 loc) • 4.45 kB
JavaScript
import assert from 'assert'
import treeObj from '../src/treeObj.mjs'
describe(`treeObj`, function() {
let data = {
a: 123,
b: 145.67,
c: 'test中文1',
d: true,
e: function() {},
f: [11, 'xyz', false, new Uint8Array([166, 197, 215])],
g: {
ga: 223,
gb: 245.67,
gc: 'test中文2',
gd: new Uint8Array([66, 97, 115]),
},
h: Symbol('foo'),
[Symbol('i-sym-key')]: 'i-sym-value',
}
let cdata1 = `{ a: 123, b: 145.67, c: 'test中文1', d: true, e: function() {}, f: [11, 'xyz', false, new Uint8Array([166, 197, 215])], g: { ga: 223, gb: 245.67, gc: 'test中文2', gd: new Uint8Array([66, 97, 115]), }, h: Symbol('foo'), [Symbol('i-sym-key')]: 'i-sym-value' }`
let cres1 = `[{"value":123,"key":"a","nk":[]},{"value":145.67,"key":"b","nk":[]},{"value":"test中文1","key":"c","nk":[]},{"value":true,"key":"d","nk":[]},{"key":"e","nk":[]},{"value":[11,"xyz",false,{"0":166,"1":197,"2":215}],"key":"f","nk":[]},{"value":11,"key":0,"nk":["f"]},{"value":"xyz","key":1,"nk":["f"]},{"value":false,"key":2,"nk":["f"]},{"value":{"0":166,"1":197,"2":215},"key":3,"nk":["f"]},{"value":{"ga":223,"gb":245.67,"gc":"test中文2","gd":{"0":66,"1":97,"2":115}},"key":"g","nk":[]},{"value":223,"key":"ga","nk":["g"]},{"value":245.67,"key":"gb","nk":["g"]},{"value":"test中文2","key":"gc","nk":["g"]},{"value":{"0":66,"1":97,"2":115},"key":"gd","nk":["g"]},{"key":"h","nk":[]},{"a":123,"b":145.67,"c":"test中文1","d":true,"f":[11,"xyz",false,{"0":166,"1":197,"2":215}],"g":{"ga":223,"gb":245.67,"gc":"test中文2","gd":{"0":66,"1":97,"2":115}}}]`
it(`should return ${cres1} when input ${cdata1}`, function() {
let m = []
let r = treeObj(data, (value, key, nk) => {
m.push({ value, key, nk })
return value
})
m.push(r)
r = JSON.stringify(m)
let rr = cres1
assert.strict.deepStrictEqual(r, rr)
})
let cdata2 = `{ a: 123, b: 145.67, c: 'test中文1', d: true, e: function() {}, f: [11, 'xyz', false, new Uint8Array([166, 197, 215])], g: { ga: 223, gb: 245.67, gc: 'test中文2', gd: new Uint8Array([66, 97, 115]), }, h: Symbol('foo'), [Symbol('i-sym-key')]: 'i-sym-value' }, { force: true }`
let cres2 = `[{"value":123,"key":"a","nk":[]},{"value":145.67,"key":"b","nk":[]},{"value":"test中文1","key":"c","nk":[]},{"value":true,"key":"d","nk":[]},{"key":"e","nk":[]},{"value":[11,"xyz",false,{"0":166,"1":197,"2":215}],"key":"f","nk":[]},{"value":11,"key":0,"nk":["f"]},{"value":"xyz","key":1,"nk":["f"]},{"value":false,"key":2,"nk":["f"]},{"value":{"0":166,"1":197,"2":215},"key":3,"nk":["f"]},{"value":{"ga":223,"gb":245.67,"gc":"test中文2","gd":{"0":66,"1":97,"2":115}},"key":"g","nk":[]},{"value":223,"key":"ga","nk":["g"]},{"value":245.67,"key":"gb","nk":["g"]},{"value":"test中文2","key":"gc","nk":["g"]},{"value":{"0":66,"1":97,"2":115},"key":"gd","nk":["g"]},{"key":"h","nk":[]},{"value":"i-sym-value","nk":[]},{"a":123,"b":145.67,"c":"test中文1","d":true,"f":[11,"xyz",false,{"0":166,"1":197,"2":215}],"g":{"ga":223,"gb":245.67,"gc":"test中文2","gd":{"0":66,"1":97,"2":115}}}]`
it(`should return ${cres2} when input ${cdata2}`, function() {
let m = []
let r = treeObj(data, (value, key, nk) => {
m.push({ value, key, nk })
return value
}, { force: true })
m.push(r)
r = JSON.stringify(m)
let rr = cres2
assert.strict.deepStrictEqual(r, rr)
})
it(`should return '' when input ''`, function() {
let r = treeObj('')
let rr = ''
assert.strict.deepStrictEqual(r, rr)
})
it(`should return [] when input []`, function() {
let r = treeObj([])
let rr = []
assert.strict.deepStrictEqual(r, rr)
})
it(`should return {} when input {}`, function() {
let r = treeObj({})
let rr = {}
assert.strict.deepStrictEqual(r, rr)
})
it(`should return null when input null`, function() {
let r = treeObj(null)
let rr = null
assert.strict.deepStrictEqual(r, rr)
})
it(`should return undefined when input undefined`, function() {
let r = treeObj(undefined)
let rr
assert.strict.deepStrictEqual(r, rr)
})
})