Home / File/ request.test.js — fastify Source File

request.test.js — fastify Source File

Architecture documentation for request.test.js, a javascript file in the fastify codebase.

Entity Profile

Source Code

'use strict'

const stream = require('node:stream')

const t = require('node:test')
const split = require('split2')

const Fastify = require('../../fastify')
const helper = require('../helper')
const { on } = stream
const { request } = require('./logger-test-utils')
const { partialDeepStrictEqual } = require('../toolkit')

t.test('request', { timeout: 60000 }, async (t) => {
  let localhost

  t.plan(7)
  t.before(async function () {
    [localhost] = await helper.getLoopbackHost()
  })

  await t.test('The request id header key can be customized', async (t) => {
    const lines = ['incoming request', 'some log message', 'request completed']
    t.plan(lines.length * 2 + 2)
    const REQUEST_ID = '42'

    const stream = split(JSON.parse)
    const fastify = Fastify({
      logger: { stream, level: 'info' },
      requestIdHeader: 'my-custom-request-id'
    })
    t.after(() => fastify.close())

    fastify.get('/', (req, reply) => {
      t.assert.strictEqual(req.id, REQUEST_ID)
      req.log.info('some log message')
      reply.send({ id: req.id })
    })

    const response = await fastify.inject({ method: 'GET', url: '/', headers: { 'my-custom-request-id': REQUEST_ID } })
    const body = await response.json()
    t.assert.strictEqual(body.id, REQUEST_ID)

    for await (const [line] of on(stream, 'data')) {
      t.assert.strictEqual(line.reqId, REQUEST_ID)
      t.assert.strictEqual(line.msg, lines.shift(), 'message is set')
      if (lines.length === 0) break
    }
  })

  await t.test('The request id header key can be ignored', async (t) => {
    const lines = ['incoming request', 'some log message', 'request completed']
    t.plan(lines.length * 2 + 2)
    const REQUEST_ID = 'ignore-me'

    const stream = split(JSON.parse)
    const fastify = Fastify({
      logger: { stream, level: 'info' },
      requestIdHeader: false
    })
// ... (233 more lines)

Frequently Asked Questions

What does request.test.js do?
request.test.js is a source file in the fastify codebase, written in javascript.
Where is request.test.js in the architecture?
request.test.js is located at test/logger/request.test.js (directory: test/logger).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free