trust-proxy.test.js — fastify Source File
Architecture documentation for trust-proxy.test.js, a javascript file in the fastify codebase.
Entity Profile
Relationship Graph
Source Code
'use strict'
const { test, before } = require('node:test')
const fastify = require('..')
const helper = require('./helper')
const fetchForwardedRequest = async (fastifyServer, forHeader, path, protoHeader) => {
const headers = {
'X-Forwarded-For': forHeader,
'X-Forwarded-Host': 'example.com'
}
if (protoHeader) {
headers['X-Forwarded-Proto'] = protoHeader
}
return fetch(fastifyServer + path, {
headers
})
}
const testRequestValues = (t, req, options) => {
if (options.ip) {
t.assert.ok(req.ip, 'ip is defined')
t.assert.strictEqual(req.ip, options.ip, 'gets ip from x-forwarded-for')
}
if (options.host) {
t.assert.ok(req.host, 'host is defined')
t.assert.strictEqual(req.host, options.host, 'gets host from x-forwarded-host')
t.assert.ok(req.hostname)
t.assert.strictEqual(req.hostname, options.host, 'gets hostname from x-forwarded-host')
}
if (options.ips) {
t.assert.deepStrictEqual(req.ips, options.ips, 'gets ips from x-forwarded-for')
}
if (options.protocol) {
t.assert.ok(req.protocol, 'protocol is defined')
t.assert.strictEqual(req.protocol, options.protocol, 'gets protocol from x-forwarded-proto')
}
if (options.port) {
t.assert.ok(req.port, 'port is defined')
t.assert.strictEqual(req.port, options.port, 'port is taken from x-forwarded-for or host')
}
}
let localhost
before(async function () {
[localhost] = await helper.getLoopbackHost()
})
test('trust proxy, not add properties to node req', async t => {
t.plan(13)
const app = fastify({
trustProxy: true
})
t.after(() => app.close())
app.get('/trustproxy', function (req, reply) {
testRequestValues(t, req, { ip: '1.1.1.1', host: 'example.com', port: app.server.address().port })
reply.code(200).send({ ip: req.ip, host: req.host })
})
// ... (103 more lines)
Domain
Subdomains
Source
Frequently Asked Questions
What does trust-proxy.test.js do?
trust-proxy.test.js is a source file in the fastify codebase, written in javascript. It belongs to the CoreKernel domain, InstanceFactory subdomain.
What functions are defined in trust-proxy.test.js?
trust-proxy.test.js defines 2 function(s): fetchForwardedRequest, testRequestValues.
Where is trust-proxy.test.js in the architecture?
trust-proxy.test.js is located at test/trust-proxy.test.js (domain: CoreKernel, subdomain: InstanceFactory, directory: test).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free