fox-wamp
Version:
Web Application Message Router/Server WAMP/MQTT
69 lines (56 loc) • 1.66 kB
JavaScript
import chai, { expect } from 'chai'
import spies from 'chai-spies'
chai.use(spies)
import sqlite3 from 'sqlite3'
import * as sqlite from 'sqlite'
import Router from '../lib/router.js'
import { StorageTask } from '../lib/masterfree/storage'
import { DbFactory } from '../lib/sqlite/dbfactory'
import { Event } from '../lib/masterfree/hyper.h'
describe('63.storage', function () {
let
draftStack,
extractStack,
api,
router,
sysRealm,
storage
beforeEach(async () => {
let db = await sqlite.open({
filename: ':memory:',
driver: sqlite3.Database
})
const dbFactory = new DbFactory()
dbFactory.setMainDb(db)
draftStack = []
extractStack = []
router = new Router()
router.setId('sync1')
sysRealm = await router.getRealm('sys')
storage = new StorageTask(
sysRealm,
dbFactory
)
api = sysRealm.buildApi()
await api.subscribe(Event.PICK_CHALLENGER, (event, opt) => { draftStack.push(opt.headers) })
await api.subscribe(Event.ELECT_SEGMENT, (event, opt) => { extractStack.push(opt.headers) })
})
afterEach(async () => {})
it('receive draft segment', async () => {
// await api.publish(Event.PICK_CHALLENGER, null, {
// headers: {
// advanceOwner: 'entry1',
// advanceSegment: 'a0',
// draftOwner: 'sync2',
// draftId: { dt: 'PREFIX1:', id: 1 }
// }
// })
// expect(draftStack).deep.equal([{
// advanceOwner: 'entry1',
// advanceSegment: 'a0',
// draftId: { dt: 'PREFIX1:', id: 1 },
// draftOwner: 'sync2'
// }])
// expect(extractStack).deep.equal([])
})
})