Skip to main content
Glama
expose.test.js1.69 kB
'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')) }) })

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/krtw00/search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server