import './helper.js'
import chai from 'chai'
const expect = chai.expect
import sinonChai from 'sinon-chai'
chai.use(sinonChai)
import { TopicTree } from '../src/topic_tree.js'
describe('TopicTree', () => {
describe('#values', () => {
it('matches "/setup/rooms/1/name"', () => {
const tree = new TopicTree()
tree.add('setup', 3000)
tree.add('setup/rooms', 3300)
tree.add('setup/rooms/1', 3330)
tree.add('setup/rooms/1/name', 3333)
tree.add('#', 1000)
tree.add('setup/rooms/#', 3310)
tree.add('setup/rooms/+/name', 3323)
tree.add('setup/rooms/+', 3320)
tree.add('setup/rooms/+/power', -3323)
tree.add('setup/+/+/name', 3223)
const values = tree.values('setup/rooms/1/name')
expect(values).to.eql([3333, 3323, 3310, 3223, 1000])
})
})
describe('#entries', () => {
it('matches "/setup/rooms/1/name"', () => {
const tree = new TopicTree()
tree.add('setup', 3000)
tree.add('setup/rooms', 3300)
tree.add('setup/rooms/1', 3330)
tree.add('setup/rooms/1/name', 3333)
tree.add('#', 1000)
tree.add('setup/rooms/#', 3310)
tree.add('setup/rooms/+/name', 3323)
tree.add('setup/rooms/+', 3320)
tree.add('setup/rooms/+/power', -3323)
tree.add('setup/+/+/name', 3223)
const entries = tree.entries('setup/rooms/1/name')
expect(entries).to.eql([
['setup/rooms/1/name', 3333],
['setup/rooms/+/name', 3323],
['setup/rooms/#', 3310],
['setup/+/+/name', 3223],
['#', 1000]
])
})
})
})