/
erioxis
/
web-nodejs
Обзор
Документация
Войти
/
erioxis
/
web-nodejs
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/node_modules/fastify/test/internals/server.test.js
91 строка
2 KB
erioxis
lab11fix
15 дек 2025, 23:21
15 дек 2025, 23:21
70dc7ba
Код
Авторство
О чём код?
'use strict' const { test } = require('node:test') const proxyquire = require('proxyquire') const Fastify = require('../../fastify') const { createServer } = require('../../lib/server') const handler = (req, res) => { res.writeHead(200, { 'Content-Type': 'application/json' }) res.end(JSON.stringify({ data: 'Hello World!' })) } test('start listening', async t => { const { server, listen } = createServer({}, handler) await listen.call(Fastify(), { port: 0, host: 'localhost' }) server.close() t.assert.ok(true, 'server started') }) test('DNS errors does not stop the main server on localhost - promise interface', async t => { const { createServer } = proxyquire('../../lib/server', { 'node:dns': { lookup: (hostname, options, cb) => { cb(new Error('DNS error')) } } }) const { server, listen } = createServer({}, handler) await listen.call(Fastify(), { port: 0, host: 'localhost' }) server.close() t.assert.ok(true, 'server started') }) test('DNS errors does not stop the main server on localhost - callback interface', (t, done) => { t.plan(2) const { createServer } = proxyquire('../../lib/server', { 'node:dns': { lookup: (hostname, options, cb) => { cb(new Error('DNS error')) } } }) const { server, listen } = createServer({}, handler) listen.call(Fastify(), { port: 0, host: 'localhost' }, (err) => { t.assert.ifError(err) server.close() t.assert.ok(true, 'server started') done() }) }) test('DNS returns empty binding', (t, done) => { t.plan(2) const { createServer } = proxyquire('../../lib/server', { 'node:dns': { lookup: (hostname, options, cb) => { cb(null, []) } } }) const { server, listen } = createServer({}, handler) listen.call(Fastify(), { port: 0, host: 'localhost' }, (err) => { t.assert.ifError(err) server.close() t.assert.ok(true, 'server started') done() }) }) test('DNS returns more than two binding', (t, done) => { t.plan(2) const { createServer } = proxyquire('../../lib/server', { 'node:dns': { lookup: (hostname, options, cb) => { cb(null, [ { address: '::1', family: 6 }, { address: '127.0.0.1', family: 4 }, { address: '0.0.0.0', family: 4 } ]) } } }) const { server, listen } = createServer({}, handler) listen.call(Fastify(), { port: 0, host: 'localhost' }, (err) => { t.assert.ifError(err) server.close() t.assert.ok(true, 'server started') done() }) })