smartchok/test/test.ts

44 lines
1.5 KiB
TypeScript
Raw Normal View History

2017-04-09 14:51:33 +00:00
import { tap, expect } from 'tapbundle'
2016-09-22 14:33:44 +00:00
import * as smartfile from 'smartfile'
2017-04-09 14:51:33 +00:00
import * as smartq from 'smartq'
2016-09-22 14:33:44 +00:00
import * as rx from 'rxjs/Rx'
2017-04-09 14:51:33 +00:00
// the module to test
2016-09-22 14:33:44 +00:00
import * as smartchok from '../dist/index'
2017-04-09 14:51:33 +00:00
let testSmartchok: smartchok.Smartchok
let testAddObservable: rx.Observable<any>
let testSubscription: rx.Subscription
tap.test('should create a new instance', async () => {
testSmartchok = new smartchok.Smartchok([])
return expect(testSmartchok).to.be.instanceof(smartchok.Smartchok)
}).catch(tap.threw)
tap.test('should add some files to watch and start', async () => {
testSmartchok.add([ './test/assets/**/*.txt' ])
let localPromise = testSmartchok.start().then(async () => {
testSmartchok.add([ './test/assets/**/*.md' ])
})
return await expect(localPromise).to.eventually.be.fulfilled
}).catch(tap.threw)
tap.test('should get an observable for a certain event', async () => {
let localPromise = testSmartchok.getObservableFor('add').then(async (observableArg) => {
testAddObservable = observableArg
})
return await expect(localPromise).to.eventually.be.fulfilled
}).catch(tap.threw)
tap.test('should register an add operation', async () => {
let testDeferred = smartq.defer()
testSubscription = testAddObservable.subscribe(x => {
testDeferred.resolve()
})
smartfile.memory.toFs('HI', './test/assets/hi.txt')
return await expect(testDeferred.promise).to.eventually.be.fulfilled
}).catch(tap.threw)
tap.test('should stop the watch process', async () => {
testSmartchok.stop()
}).catch(tap.threw)