Home / File/ test-utils.js — astro Source File

test-utils.js — astro Source File

Architecture documentation for test-utils.js, a javascript file in the astro codebase. 14 imports, 26 dependents.

File javascript IntegrationAdapters SsrAdapters 14 imports 26 dependents 7 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  b0be4d0c_86b6_a283_f2af_003189bfd572["test-utils.js"]
  b2422adc_24c2_e60f_84b9_b20b83b3d7f0["../../dist/core/client-directive/index.js"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> b2422adc_24c2_e60f_84b9_b20b83b3d7f0
  011fcd63_bba9_72a2_e9be_9bc0a8c48876["../../dist/core/config/index.js"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> 011fcd63_bba9_72a2_e9be_9bc0a8c48876
  2881c812_2cb4_5561_beeb_f1ae6861ed11["../../dist/core/config/settings.js"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> 2881c812_2cb4_5561_beeb_f1ae6861ed11
  d941fcda_7a73_7111_5c8f_ff626cd2fcad["../../../dist/core/dev/container.js"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> d941fcda_7a73_7111_5c8f_ff626cd2fcad
  f5b154b4_7bf2_7c8f_2105_5c84d2420bd1["../../dist/core/logger/core.js"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> f5b154b4_7bf2_7c8f_2105_5c84d2420bd1
  142ceb54_9d83_884f_947a_be25e52f3c42["../../dist/core/logger/node.js"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> 142ceb54_9d83_884f_947a_be25e52f3c42
  6ba31221_a5dc_dcfc_103d_5e67ee06af14["../../dist/core/middleware/noop-middleware.js"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> 6ba31221_a5dc_dcfc_103d_5e67ee06af14
  d19eaaa2_5ff2_f92e_05ab_a0aabaf3217b["../../dist/core/render/index.js"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> d19eaaa2_5ff2_f92e_05ab_a0aabaf3217b
  3b40d2b0_ce07_83ad_60c7_60450ae51460["../../dist/core/render/route-cache.js"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> 3b40d2b0_ce07_83ad_60c7_60450ae51460
  fc0217ba_5b68_32cc_f77d_49b4596e615e["node:events"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> fc0217ba_5b68_32cc_f77d_49b4596e615e
  e16a223b_37f3_6b25_1ee1_2b7bcb9d9415["node:fs"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> e16a223b_37f3_6b25_1ee1_2b7bcb9d9415
  d9a92db9_c95e_9165_13ac_24b3d859d946["node:url"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> d9a92db9_c95e_9165_13ac_24b3d859d946
  8d781611_e751_fd5d_6d9a_a5793d2fd30a["fs-fixture"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> 8d781611_e751_fd5d_6d9a_a5793d2fd30a
  0132f612_2bd0_7945_e548_57b5235cfc54["node-mocks-http"]
  b0be4d0c_86b6_a283_f2af_003189bfd572 --> 0132f612_2bd0_7945_e548_57b5235cfc54
  style b0be4d0c_86b6_a283_f2af_003189bfd572 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { EventEmitter } from 'node:events';
import realFS from 'node:fs';
import { fileURLToPath } from 'node:url';
import { createFixture as _createFixture } from 'fs-fixture';
import httpMocks from 'node-mocks-http';
import { getDefaultClientDirectives } from '../../dist/core/client-directive/index.js';
import { resolveConfig } from '../../dist/core/config/index.js';
import { createBaseSettings } from '../../dist/core/config/settings.js';
import { createContainer } from '../../dist/core/dev/container.js';
import { AstroIntegrationLogger, Logger } from '../../dist/core/logger/core.js';
import { nodeLogDestination } from '../../dist/core/logger/node.js';
import { NOOP_MIDDLEWARE_FN } from '../../dist/core/middleware/noop-middleware.js';
import { Pipeline } from '../../dist/core/render/index.js';
import { RouteCache } from '../../dist/core/render/route-cache.js';

/** @type {import('../../src/core/logger/core').Logger} */
export const defaultLogger = new Logger({
	dest: nodeLogDestination,
	level: 'error',
});

const tempFixturesDir = fileURLToPath(new URL('./_temp-fixtures/', import.meta.url));

/**
 * @param {import('fs-fixture').FileTree} tree
 */
export async function createFixture(tree) {
	return await _createFixture(
		{
			'package.json': '{}',
			...tree,
		},
		{
			tempDir: tempFixturesDir,
		},
	);
}

export function createRequestAndResponse(reqOptions = {}) {
	const req = httpMocks.createRequest(reqOptions);
	req.headers.host ||= 'localhost';

	const res = httpMocks.createResponse({
		eventEmitter: EventEmitter,
		req,
	});

	// When the response is complete.
	const done = toPromise(res);

	// Get the response as text
	const text = async () => {
		let chunks = await done;
		return buffersToString(chunks);
	};

	// Get the response as json
	const json = async () => {
		const raw = await text();
		return JSON.parse(raw);
// ... (144 more lines)

Subdomains

Classes

Dependencies

  • ../../../dist/core/dev/container.js
  • ../../dist/core/client-directive/index.js
  • ../../dist/core/config/index.js
  • ../../dist/core/config/settings.js
  • ../../dist/core/logger/core.js
  • ../../dist/core/logger/node.js
  • ../../dist/core/middleware/noop-middleware.js
  • ../../dist/core/render/index.js
  • ../../dist/core/render/route-cache.js
  • fs-fixture
  • node-mocks-http
  • node:events
  • node:fs
  • node:url

Frequently Asked Questions

What does test-utils.js do?
test-utils.js is a source file in the astro codebase, written in javascript. It belongs to the IntegrationAdapters domain, SsrAdapters subdomain.
What functions are defined in test-utils.js?
test-utils.js defines 7 function(s): buffersToString, createBasicPipeline, createBasicSettings, createFixture, createRequestAndResponse, runInContainer, toPromise.
What does test-utils.js depend on?
test-utils.js imports 14 module(s): ../../../dist/core/dev/container.js, ../../dist/core/client-directive/index.js, ../../dist/core/config/index.js, ../../dist/core/config/settings.js, ../../dist/core/logger/core.js, ../../dist/core/logger/node.js, ../../dist/core/middleware/noop-middleware.js, ../../dist/core/render/index.js, and 6 more.
What files import test-utils.js?
test-utils.js is imported by 26 file(s): api.test.js, base.test.js, chunk.test.js, client-address-node.test.js, components.test.js, core.test.js, create-key.test.js, dev.test.js, and 18 more.
Where is test-utils.js in the architecture?
test-utils.js is located at packages/astro/test/units/test-utils.js (domain: IntegrationAdapters, subdomain: SsrAdapters, directory: packages/astro/test/units).

Analyze Your Own Codebase

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

Try Supermodel Free