learning_ai_notes/backend/node_modules/avvio/test/chainable.test.js

71 lines
1.5 KiB
JavaScript

'use strict'
const { test } = require('node:test')
const boot = require('..')
test('chainable standalone', (t, testDone) => {
t.plan(5)
const readyResult = boot()
.use(function (ctx, opts, done) {
t.assert.ok('1st plugin')
done()
}).after(function (err, done) {
t.assert.ifError(err)
t.assert.ok('2nd after')
done()
}).ready(function () {
t.assert.ok('we are ready')
testDone()
})
t.assert.strictEqual(readyResult, undefined)
})
test('chainable automatically binded', (t, testDone) => {
t.plan(5)
const app = {}
boot(app)
const readyResult = app
.use(function (ctx, opts, done) {
t.assert.ok('1st plugin')
done()
}).after(function (err, done) {
t.assert.ifError(err)
t.assert.ok('2nd after')
done()
}).ready(function () {
t.assert.ok('we are ready')
testDone()
})
t.assert.strictEqual(readyResult, undefined)
})
test('chainable standalone with server', (t, testDone) => {
t.plan(6)
const server = {}
boot(server, {
expose: {
use: 'register'
}
})
const readyResult = server.register(function (ctx, opts, done) {
t.assert.ok('1st plugin')
done()
}).after(function (err, done) {
t.assert.ifError(err)
t.assert.ok('2nd after')
done()
}).register(function (ctx, opts, done) {
t.assert.ok('3rd plugin')
done()
}).ready(function () {
t.assert.ok('we are ready')
testDone()
})
t.assert.strictEqual(readyResult, undefined)
})