node.test.js — astro Source File
Architecture documentation for node.test.js, a javascript file in the astro codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 6120b399_f320_e3e0_a7f1_e57cc31a3798["node.test.js"] 72228a0e_1d5f_9727_534e_7c0b53003838["../../../dist/core/app/node.js"] 6120b399_f320_e3e0_a7f1_e57cc31a3798 --> 72228a0e_1d5f_9727_534e_7c0b53003838 e1e2fac7_5a95_7a88_cb1e_0a3b91c4e607["strict"] 6120b399_f320_e3e0_a7f1_e57cc31a3798 --> e1e2fac7_5a95_7a88_cb1e_0a3b91c4e607 fc0217ba_5b68_32cc_f77d_49b4596e615e["node:events"] 6120b399_f320_e3e0_a7f1_e57cc31a3798 --> fc0217ba_5b68_32cc_f77d_49b4596e615e 6b0635f9_51ea_77aa_767b_7857878e98a6["node:test"] 6120b399_f320_e3e0_a7f1_e57cc31a3798 --> 6b0635f9_51ea_77aa_767b_7857878e98a6 style 6120b399_f320_e3e0_a7f1_e57cc31a3798 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import * as assert from 'node:assert/strict';
import { EventEmitter } from 'node:events';
import { describe, it } from 'node:test';
import { NodeApp } from '../../../dist/core/app/node.js';
const mockNodeRequest = {
url: '/',
method: 'GET',
headers: {
host: 'example.com',
},
socket: {
encrypted: true,
remoteAddress: '2.2.2.2',
},
};
describe('NodeApp', () => {
describe('createRequest', () => {
describe('x-forwarded-for', () => {
it('parses client IP from single-value x-forwarded-for header', () => {
const result = NodeApp.createRequest({
...mockNodeRequest,
headers: {
'x-forwarded-for': '1.1.1.1',
},
});
assert.equal(result[Symbol.for('astro.clientAddress')], '1.1.1.1');
});
it('parses client IP from multi-value x-forwarded-for header', () => {
const result = NodeApp.createRequest({
...mockNodeRequest,
headers: {
'x-forwarded-for': '1.1.1.1,8.8.8.8',
},
});
assert.equal(result[Symbol.for('astro.clientAddress')], '1.1.1.1');
});
it('parses client IP from multi-value x-forwarded-for header with spaces', () => {
const result = NodeApp.createRequest({
...mockNodeRequest,
headers: {
'x-forwarded-for': ' 1.1.1.1, 8.8.8.8, 8.8.8.2',
},
});
assert.equal(result[Symbol.for('astro.clientAddress')], '1.1.1.1');
});
it('fallbacks to remoteAddress when no x-forwarded-for header is present', () => {
const result = NodeApp.createRequest({
...mockNodeRequest,
headers: {},
});
assert.equal(result[Symbol.for('astro.clientAddress')], '2.2.2.2');
});
});
describe('x-forwarded-host', () => {
// ... (385 more lines)
Domain
Subdomains
Classes
Dependencies
- ../../../dist/core/app/node.js
- node:events
- node:test
- strict
Source
Frequently Asked Questions
What does node.test.js do?
node.test.js is a source file in the astro codebase, written in javascript. It belongs to the IntegrationAdapters domain, SsrAdapters subdomain.
What does node.test.js depend on?
node.test.js imports 4 module(s): ../../../dist/core/app/node.js, node:events, node:test, strict.
Where is node.test.js in the architecture?
node.test.js is located at packages/astro/test/units/app/node.test.js (domain: IntegrationAdapters, subdomain: SsrAdapters, directory: packages/astro/test/units/app).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free