mqrpc
Version:
💫 Easy RPC over RabbitMQ
40 lines (29 loc) • 1.07 kB
text/typescript
import test from 'ava'
import Timer from '../../lib/Timer'
import { delay } from '../_utils'
const timeout = { id: 'ackTo', length: 25 }
test.beforeEach(t => t.context.timer = new Timer())
test('[unit] #clear stops all active timeouts for all calls', t => {
const promises = [
t.context.timer.addTimeouts('an-id', timeout),
t.context.timer.addTimeouts('an-id-too', timeout, { id: 'fast!', length: 15 }),
t.context.timer.addTimeouts('an-id-also', timeout),
Promise.resolve(42) // for .race
]
t.context.timer.clear()
return delay(25).then(() => t.notThrows(Promise.race(promises)))
})
test('[unit] #clear removes all calls', t => {
const promises = [
t.context.timer.addTimeouts('an-id', timeout),
t.context.timer.addTimeouts('an-id-too', timeout)
]
t.context.timer.clear()
const otherPromises = [
t.context.timer.addTimeouts('an-id', timeout),
t.context.timer.addTimeouts('an-id-too', timeout)
]
t.not(promises[0], otherPromises[0])
t.not(promises[1], otherPromises[1])
t.context.timer.clear() // cleanup
})