29 lines
653 B
JavaScript
29 lines
653 B
JavaScript
'use strict'
|
|
|
|
const { test } = require('node:test')
|
|
const boot = require('..')
|
|
|
|
// asyncDispose doesn't exist in Node.js < 20
|
|
test('Symbol.asyncDispose should close avvio', { skip: !('asyncDispose' in Symbol) }, async (t) => {
|
|
t.plan(2)
|
|
|
|
const app = boot()
|
|
let closeHandlerCalled = false
|
|
|
|
app.use(function (server, opts, done) {
|
|
app.onClose(() => {
|
|
closeHandlerCalled = true
|
|
})
|
|
done()
|
|
})
|
|
|
|
await app.ready()
|
|
|
|
t.assert.strictEqual(app.booted, true)
|
|
|
|
// Simulates using keyword behavior: await using app = boot()
|
|
await app[Symbol.asyncDispose]()
|
|
|
|
t.assert.ok(closeHandlerCalled, 'onClose handler should be called')
|
|
})
|