Home / File/ has-route.test.js — fastify Source File

has-route.test.js — fastify Source File

Architecture documentation for has-route.test.js, a javascript file in the fastify codebase.

Entity Profile

Source Code

'use strict'

const { test, describe } = require('node:test')
const Fastify = require('..')

const fastify = Fastify()

describe('hasRoute', async t => {
  test('hasRoute - invalid options', t => {
    t.plan(3)

    t.assert.strictEqual(fastify.hasRoute({ }), false)
    t.assert.strictEqual(fastify.hasRoute({ method: 'GET' }), false)
    t.assert.strictEqual(fastify.hasRoute({ constraints: [] }), false)
  })

  test('hasRoute - primitive method', t => {
    t.plan(2)
    fastify.route({
      method: 'GET',
      url: '/',
      handler: function (req, reply) {
        reply.send({ hello: 'world' })
      }
    })

    t.assert.strictEqual(fastify.hasRoute({
      method: 'GET',
      url: '/'
    }), true)

    t.assert.strictEqual(fastify.hasRoute({
      method: 'POST',
      url: '/'
    }), false)
  })

  test('hasRoute - with constraints', t => {
    t.plan(2)
    fastify.route({
      method: 'GET',
      url: '/',
      constraints: { version: '1.2.0' },
      handler: (req, reply) => {
        reply.send({ hello: 'world' })
      }
    })

    t.assert.strictEqual(fastify.hasRoute({
      method: 'GET',
      url: '/',
      constraints: { version: '1.2.0' }
    }), true)

    t.assert.strictEqual(fastify.hasRoute({
      method: 'GET',
      url: '/',
      constraints: { version: '1.3.0' }
    }), false)
  })

  test('hasRoute - parametric route regexp with constraints', t => {
    t.plan(1)
    // parametric with regexp
    fastify.get('/example/:file(^\\d+).png', function (request, reply) { })

    t.assert.strictEqual(fastify.hasRoute({
      method: 'GET',
      url: '/example/:file(^\\d+).png'
    }), true)
  })

  test('hasRoute - finds a route even if method is not uppercased', t => {
    t.plan(1)
    fastify.route({
      method: 'GET',
      url: '/equal',
      handler: function (req, reply) {
        reply.send({ hello: 'world' })
      }
    })

    t.assert.strictEqual(fastify.hasRoute({
      method: 'get',
      url: '/equal'
    }), true)
  })
})

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free