Spaces:
Runtime error
Runtime error
File size: 1,694 Bytes
23ac194 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 'use strict'
const { test } = require('tap')
const boot = require('..')
const { AVV_ERR_EXPOSE_ALREADY_DEFINED, AVV_ERR_ATTRIBUTE_ALREADY_DEFINED } = require('../lib/errors')
const { kAvvio } = require('../lib/symbols')
for (const key of ['use', 'after', 'ready', 'onClose', 'close']) {
test('throws if ' + key + ' is by default already there', (t) => {
t.plan(1)
const app = {}
app[key] = () => { }
t.throws(() => boot(app), new AVV_ERR_EXPOSE_ALREADY_DEFINED(key, key))
})
test('throws if ' + key + ' is already there', (t) => {
t.plan(1)
const app = {}
app['cust' + key] = () => { }
t.throws(() => boot(app, { expose: { [key]: 'cust' + key } }), new AVV_ERR_EXPOSE_ALREADY_DEFINED('cust' + key, key))
})
test('support expose for ' + key, (t) => {
const app = {}
app[key] = () => { }
const expose = {}
expose[key] = 'muahah'
boot(app, {
expose
})
t.end()
})
}
test('set the kAvvio to true on the server', (t) => {
t.plan(1)
const server = {}
boot(server)
t.ok(server[kAvvio])
})
test('.then()', t => {
t.plan(3)
t.test('.then() can not be overwritten', (t) => {
t.plan(1)
const server = {
then: () => {}
}
t.throws(() => boot(server), AVV_ERR_ATTRIBUTE_ALREADY_DEFINED('then'))
})
t.test('.then() is a function', (t) => {
t.plan(1)
const server = {}
boot(server)
t.type(server.then, 'function')
})
t.test('.then() can not be overwritten', (t) => {
t.plan(1)
const server = {}
boot(server)
t.throws(() => { server.then = 'invalid' }, TypeError('Cannot set property then of #<Object> which has only a getter'))
})
})
|