CoolFace
Apppublic

strong-tie/inbound-calls

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
server.test.js92 linesDownload Raw Back to internals
1'use strict'2 3const { test } = require('node:test')4const proxyquire = require('proxyquire')5 6const Fastify = require('../../fastify')7const { createServer } = require('../../lib/server')8 9const handler = (req, res) => {10  res.writeHead(200, { 'Content-Type': 'application/json' })11  res.end(JSON.stringify({ data: 'Hello World!' }))12}13 14test('start listening', async t => {15  const { server, listen } = createServer({}, handler)16  await listen.call(Fastify(), { port: 0, host: 'localhost' })17  server.close()18  t.assert.ok(true, 'server started')19})20 21test('DNS errors does not stop the main server on localhost - promise interface', async t => {22  const { createServer } = proxyquire('../../lib/server', {23    'node:dns': {24      lookup: (hostname, options, cb) => {25        cb(new Error('DNS error'))26      }27    }28  })29  const { server, listen } = createServer({}, handler)30  await listen.call(Fastify(), { port: 0, host: 'localhost' })31  server.close()32  t.assert.ok(true, 'server started')33})34 35test('DNS errors does not stop the main server on localhost - callback interface', (t, done) => {36  t.plan(2)37  const { createServer } = proxyquire('../../lib/server', {38    'node:dns': {39      lookup: (hostname, options, cb) => {40        cb(new Error('DNS error'))41      }42    }43  })44  const { server, listen } = createServer({}, handler)45  listen.call(Fastify(), { port: 0, host: 'localhost' }, (err) => {46    t.assert.ifError(err)47    server.close()48    t.assert.ok(true, 'server started')49    done()50  })51})52 53test('DNS returns empty binding', (t, done) => {54  t.plan(2)55  const { createServer } = proxyquire('../../lib/server', {56    'node:dns': {57      lookup: (hostname, options, cb) => {58        cb(null, [])59      }60    }61  })62  const { server, listen } = createServer({}, handler)63  listen.call(Fastify(), { port: 0, host: 'localhost' }, (err) => {64    t.assert.ifError(err)65    server.close()66    t.assert.ok(true, 'server started')67    done()68  })69})70 71test('DNS returns more than two binding', (t, done) => {72  t.plan(2)73  const { createServer } = proxyquire('../../lib/server', {74    'node:dns': {75      lookup: (hostname, options, cb) => {76        cb(null, [77          { address: '::1', family: 6 },78          { address: '127.0.0.1', family: 4 },79          { address: '0.0.0.0', family: 4 }80        ])81      }82    }83  })84  const { server, listen } = createServer({}, handler)85  listen.call(Fastify(), { port: 0, host: 'localhost' }, (err) => {86    t.assert.ifError(err)87    server.close()88    t.assert.ok(true, 'server started')89    done()90  })91})92