You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
1.6 KiB
91 lines
1.6 KiB
3 years ago
|
'use strict'
|
||
|
|
||
|
const { test } = require('tap')
|
||
|
const boot = require('..')
|
||
|
const app = {}
|
||
|
|
||
|
boot(app)
|
||
|
|
||
|
test('multi after', (t) => {
|
||
|
t.plan(6)
|
||
|
|
||
|
app.use(function (f, opts, cb) {
|
||
|
cb()
|
||
|
}).after(() => {
|
||
|
t.pass('this is just called')
|
||
|
|
||
|
app.use(function (f, opts, cb) {
|
||
|
t.pass('this is just called')
|
||
|
cb()
|
||
|
})
|
||
|
}).after(function () {
|
||
|
t.pass('this is just called')
|
||
|
app.use(function (f, opts, cb) {
|
||
|
t.pass('this is just called')
|
||
|
cb()
|
||
|
})
|
||
|
}).after(function (err, cb) {
|
||
|
t.pass('this is just called')
|
||
|
cb(err)
|
||
|
})
|
||
|
|
||
|
app.ready().then(() => {
|
||
|
t.pass('ready')
|
||
|
}).catch(() => {
|
||
|
t.fail('this should not be called')
|
||
|
})
|
||
|
})
|
||
|
|
||
|
test('after grouping - use called after after called', (t) => {
|
||
|
t.plan(9)
|
||
|
const app = {}
|
||
|
boot(app)
|
||
|
|
||
|
const TEST_VALUE = {}
|
||
|
const OTHER_TEST_VALUE = {}
|
||
|
const NEW_TEST_VALUE = {}
|
||
|
|
||
|
const sO = (fn) => {
|
||
|
fn[Symbol.for('skip-override')] = true
|
||
|
return fn
|
||
|
}
|
||
|
|
||
|
app.use(sO(function (f, options, next) {
|
||
|
f.test = TEST_VALUE
|
||
|
|
||
|
next()
|
||
|
}))
|
||
|
|
||
|
app.after(function (err, f, done) {
|
||
|
t.error(err)
|
||
|
t.equal(f.test, TEST_VALUE)
|
||
|
|
||
|
f.test2 = OTHER_TEST_VALUE
|
||
|
done()
|
||
|
})
|
||
|
|
||
|
app.use(sO(function (f, options, next) {
|
||
|
t.equal(f.test, TEST_VALUE)
|
||
|
t.equal(f.test2, OTHER_TEST_VALUE)
|
||
|
|
||
|
f.test3 = NEW_TEST_VALUE
|
||
|
|
||
|
next()
|
||
|
}))
|
||
|
|
||
|
app.after(function (err, f, done) {
|
||
|
t.error(err)
|
||
|
t.equal(f.test, TEST_VALUE)
|
||
|
t.equal(f.test2, OTHER_TEST_VALUE)
|
||
|
t.equal(f.test3, NEW_TEST_VALUE)
|
||
|
done()
|
||
|
})
|
||
|
|
||
|
app.ready().then(() => {
|
||
|
t.pass('ready')
|
||
|
}).catch((e) => {
|
||
|
console.log(e)
|
||
|
t.fail('this should not be called')
|
||
|
})
|
||
|
})
|