54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import 'mocha'
|
|
import { expect } from 'chai'
|
|
import { makeTreeNode } from './makeTreeNode'
|
|
|
|
describe('TreeNodeFactory', () => {
|
|
it('root node must not have a sourceEdge', () => {
|
|
const leaf = makeTreeNode('foo/bar')
|
|
|
|
expect(leaf.firstNode().sourceEdge).to.eq(undefined)
|
|
})
|
|
|
|
it('should create node', () => {
|
|
const node = makeTreeNode('foo/bar', '5')
|
|
|
|
if (!node.sourceEdge || !node.sourceEdge.source || !node.message) {
|
|
expect.fail('should not happen')
|
|
return
|
|
}
|
|
|
|
expect(node).to.not.eq(undefined)
|
|
expect(node.sourceEdge.name).to.eq('bar')
|
|
expect(node.message.payload!.toUnicodeString()).to.eq('5')
|
|
|
|
const foo = node.firstNode().findNode('foo')
|
|
expect(foo && foo.sourceEdge && foo.sourceEdge.name).to.eq('foo')
|
|
})
|
|
|
|
it('node should contain edges in order', () => {
|
|
const node = makeTreeNode('foo/bar/baz', '5')
|
|
|
|
if (!node.sourceEdge || !node.sourceEdge.source || !node.message) {
|
|
expect.fail('should not happen')
|
|
return
|
|
}
|
|
|
|
expect(node.message.payload!.toUnicodeString()).to.eq('5')
|
|
expect(node.sourceEdge.name).to.eq('baz')
|
|
|
|
const barNode = node.sourceEdge.source
|
|
if (!barNode || !barNode.sourceEdge) {
|
|
expect.fail('should not fail')
|
|
return
|
|
}
|
|
expect(barNode.sourceEdge.name).to.eq('bar')
|
|
|
|
const fooNode = barNode.sourceEdge.source
|
|
if (!fooNode || !fooNode.sourceEdge) {
|
|
expect.fail('should not fail')
|
|
return
|
|
}
|
|
expect(fooNode.sourceEdge.name).to.eq('foo')
|
|
})
|
|
})
|