node/test/fixtures/process/before-exit.mjs

32 lines
704 B
JavaScript
Raw Normal View History

import { strictEqual } from 'assert'
function setup() {
const obj = { foo: 'bar' }
process.finalization.registerBeforeExit(obj, shutdown)
}
let shutdownCalled = false
let timeoutFinished = false
function shutdown(obj, event) {
shutdownCalled = true
if (event === 'beforeExit') {
setTimeout(function () {
timeoutFinished = true
strictEqual(obj.foo, 'bar')
process.finalization.unregister(obj)
}, 100)
process.on('beforeExit', function () {
strictEqual(timeoutFinished, true)
})
} else {
throw new Error(`different event, expected beforeExit but got ${event}`)
}
}
setup()
process.on('exit', function () {
strictEqual(shutdownCalled, true)
})