/
erioxis
/
web-nodejs
Обзор
Документация
Войти
/
erioxis
/
web-nodejs
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/node_modules/avvio/test/expose.test.js
80 строк
2 KB
erioxis
lab11fix
15 дек 2025, 23:21
15 дек 2025, 23:21
70dc7ba
Код
Авторство
О чём код?
'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')) }) })