71 lines
1.5 KiB
JavaScript
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)
|
|
})
|