35 lines
775 B
JavaScript
35 lines
775 B
JavaScript
'use strict'
|
|
|
|
const test = require('tap').test
|
|
const build = require('..')
|
|
|
|
test('emit should emit a given code unlimited times', t => {
|
|
t.plan(50)
|
|
|
|
const { create, emit, emitted } = build()
|
|
|
|
let runs = 0
|
|
const expectedRun = []
|
|
const times = 10
|
|
|
|
process.on('warning', onWarning)
|
|
function onWarning (warning) {
|
|
t.equal(warning.name, 'FastifyDeprecation')
|
|
t.equal(warning.code, 'CODE')
|
|
t.equal(warning.message, 'Hello world')
|
|
t.ok(emitted.get('CODE'))
|
|
t.equal(runs++, expectedRun.shift())
|
|
}
|
|
|
|
create('FastifyDeprecation', 'CODE', 'Hello world', { unlimited: true })
|
|
|
|
for (let i = 0; i < times; i++) {
|
|
expectedRun.push(i)
|
|
emit('CODE')
|
|
}
|
|
setImmediate(() => {
|
|
process.removeListener('warning', onWarning)
|
|
t.end()
|
|
})
|
|
})
|