Home / File/ renderer.test.ts — svelte Source File

renderer.test.ts — svelte Source File

Architecture documentation for renderer.test.ts, a typescript file in the svelte codebase. 8 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  43b827db_a928_0dd7_7ceb_9d4bac9c1c2b["renderer.test.ts"]
  25166256_49ce_81f2_0877_fdbc689bed91["renderer.js"]
  43b827db_a928_0dd7_7ceb_9d4bac9c1c2b --> 25166256_49ce_81f2_0877_fdbc689bed91
  ce85d155_9f13_f67c_9824_407161a6c2c7["Renderer"]
  43b827db_a928_0dd7_7ceb_9d4bac9c1c2b --> ce85d155_9f13_f67c_9824_407161a6c2c7
  27e4b187_7d63_5de0_1c16_1569e67253dd["SSRState"]
  43b827db_a928_0dd7_7ceb_9d4bac9c1c2b --> 27e4b187_7d63_5de0_1c16_1569e67253dd
  3c211218_0172_f6af_dd4f_da8028a531fc["index.js"]
  43b827db_a928_0dd7_7ceb_9d4bac9c1c2b --> 3c211218_0172_f6af_dd4f_da8028a531fc
  ff0c5129_804f_ba0f_3047_8a0921e38c9d["disable_async_mode_flag"]
  43b827db_a928_0dd7_7ceb_9d4bac9c1c2b --> ff0c5129_804f_ba0f_3047_8a0921e38c9d
  e7594dfe_1c06_0fd2_e810_23e86d40d1fc["enable_async_mode_flag"]
  43b827db_a928_0dd7_7ceb_9d4bac9c1c2b --> e7594dfe_1c06_0fd2_e810_23e86d40d1fc
  b63ddb92_634c_990b_eb1b_0bad8a4d434e["vitest"]
  43b827db_a928_0dd7_7ceb_9d4bac9c1c2b --> b63ddb92_634c_990b_eb1b_0bad8a4d434e
  4ead6623_c53e_ab40_5690_64903d5addf1["svelte"]
  43b827db_a928_0dd7_7ceb_9d4bac9c1c2b --> 4ead6623_c53e_ab40_5690_64903d5addf1
  style 43b827db_a928_0dd7_7ceb_9d4bac9c1c2b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { afterAll, beforeAll, describe, expect, test } from 'vitest';
import { Renderer, SSRState } from './renderer.js';
import type { Component } from 'svelte';
import { disable_async_mode_flag, enable_async_mode_flag } from '../flags/index.js';

test('collects synchronous body content by default', () => {
	const component = (renderer: Renderer) => {
		renderer.push('a');
		renderer.child(($$renderer) => {
			$$renderer.push('b');
		});
		renderer.push('c');
	};

	const { head, body } = Renderer.render(component as unknown as Component);
	expect(head).toBe('');
	expect(body).toBe('<!--[-->abc<!--]-->');
});

test('child type switches content area (head vs body)', () => {
	const component = (renderer: Renderer) => {
		renderer.push('a');
		renderer.head(($$renderer) => {
			$$renderer.push('<title>T</title>');
		});
		renderer.push('b');
	};

	const { head, body } = Renderer.render(component as unknown as Component);
	expect(head).toBe('<title>T</title>');
	expect(body).toBe('<!--[-->ab<!--]-->');
});

test('child inherits parent type when not specified', () => {
	const component = (renderer: Renderer) => {
		renderer.head((renderer) => {
			renderer.push('<meta name="x"/>');
			renderer.child((renderer) => {
				renderer.push('<style>/* css */</style>');
			});
		});
	};

	const { head, body } = Renderer.render(component as unknown as Component);
	expect(body).toBe('<!--[--><!--]-->');
	expect(head).toBe('<meta name="x"/><style>/* css */</style>');
});

test('get_path returns the path indexes to a renderer', () => {
	const root = new Renderer(new SSRState('sync'));
	let child_a: InstanceType<typeof Renderer> | undefined;
	let child_b: InstanceType<typeof Renderer> | undefined;
	let child_b_0: InstanceType<typeof Renderer> | undefined;

	root.child(($$renderer) => {
		child_a = $$renderer;
		$$renderer.push('A');
	});
	root.child(($$renderer) => {
		child_b = $$renderer;
// ... (298 more lines)

Domain

Frequently Asked Questions

What does renderer.test.ts do?
renderer.test.ts is a source file in the svelte codebase, written in typescript. It belongs to the ServerRuntime domain.
What does renderer.test.ts depend on?
renderer.test.ts imports 8 module(s): Renderer, SSRState, disable_async_mode_flag, enable_async_mode_flag, index.js, renderer.js, svelte, vitest.
Where is renderer.test.ts in the architecture?
renderer.test.ts is located at packages/svelte/src/internal/server/renderer.test.ts (domain: ServerRuntime, directory: packages/svelte/src/internal/server).

Analyze Your Own Codebase

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

Try Supermodel Free