Home / Function/ run_test_variant() — svelte Function Reference

run_test_variant() — svelte Function Reference

Architecture documentation for the run_test_variant() function in shared.ts from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  1edde895_4b1f_7b83_74c8_3640bf220ca9["run_test_variant()"]
  2cf8977f_8bb9_9ef1_6e90_d6eea1dac831["shared.ts"]
  1edde895_4b1f_7b83_74c8_3640bf220ca9 -->|defined in| 2cf8977f_8bb9_9ef1_6e90_d6eea1dac831
  b45b5cf8_6c5d_e1ba_4b66_21708749a523["runtime_suite()"]
  b45b5cf8_6c5d_e1ba_4b66_21708749a523 -->|calls| 1edde895_4b1f_7b83_74c8_3640bf220ca9
  ace40ef0_8734_2f17_9d6e_35e08f332e08["reset()"]
  1edde895_4b1f_7b83_74c8_3640bf220ca9 -->|calls| ace40ef0_8734_2f17_9d6e_35e08f332e08
  1c541d89_49ad_09df_1b04_218f8bcb99e8["assert_html_equal_with_options()"]
  1edde895_4b1f_7b83_74c8_3640bf220ca9 -->|calls| 1c541d89_49ad_09df_1b04_218f8bcb99e8
  5bc3c950_96f7_e454_6cb7_65ffc2179811["flushSync()"]
  1edde895_4b1f_7b83_74c8_3640bf220ca9 -->|calls| 5bc3c950_96f7_e454_6cb7_65ffc2179811
  58e25076_0e70_68a7_dbf9_e13ef9845ff2["apply()"]
  1edde895_4b1f_7b83_74c8_3640bf220ca9 -->|calls| 58e25076_0e70_68a7_dbf9_e13ef9845ff2
  3f18e7a4_4010_5e33_35ee_c53c8401ca03["assert_html_equal()"]
  1edde895_4b1f_7b83_74c8_3640bf220ca9 -->|calls| 3f18e7a4_4010_5e33_35ee_c53c8401ca03
  a199a3f7_5497_5329_2c7c_fc4555548da6["clear()"]
  1edde895_4b1f_7b83_74c8_3640bf220ca9 -->|calls| a199a3f7_5497_5329_2c7c_fc4555548da6
  style 1edde895_4b1f_7b83_74c8_3640bf220ca9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/tests/runtime-legacy/shared.ts lines 241–602

async function run_test_variant(
	cwd: string,
	config: RuntimeTest,
	variant: 'dom' | 'hydrate' | 'ssr' | 'async-ssr',
	compileOptions: CompileOptions,
	runes: boolean
) {
	let unintended_error = false;

	let logs: string[] = [];
	let warnings: string[] = [];
	let errors: string[] = [];
	let manual_hydrate = false;

	{
		// use some crude static analysis to determine if logs/warnings are intercepted.
		// we do this instead of using getters on the `test` parameters so that we can
		// squelch logs in SSR tests while printing temporary logs in other cases
		let str = config.test?.toString() ?? '';
		let n = 0;
		let i = 0;
		while (i < str.length) {
			if (str[i] === '(') n++;
			if (str[i] === ')' && --n === 0) break;
			i++;
		}

		let ssr_str = config.test_ssr?.toString() ?? '';
		let sn = 0;
		let si = 0;
		while (si < ssr_str.length) {
			if (ssr_str[si] === '(') sn++;
			if (ssr_str[si] === ')' && --sn === 0) break;
			si++;
		}

		if (str.slice(0, i).includes('logs') || ssr_str.slice(0, si).includes('logs')) {
			// eslint-disable-next-line no-console
			console.log = (...args) => {
				logs.push(...args);
			};
		}

		if (str.slice(0, i).includes('hydrate')) {
			manual_hydrate = true;
		}

		if (
			str.slice(0, i).includes('warnings') ||
			config.warnings ||
			ssr_str.slice(0, si).includes('warnings')
		) {
			// eslint-disable-next-line no-console
			console.warn = (...args) => {
				if (typeof args[0] === 'string' && args[0].startsWith('%c[svelte]')) {
					// TODO convert this to structured data, for more robust comparison?

					let message = args[0];
					message = message.slice(message.indexOf('%c', 2) + 2);

					// Remove the "https://svelte.dev/e/..." link at the end
					const lines = message.split('\n');
					if (lines.at(-1)?.startsWith('https://svelte.dev/e/')) {
						lines.pop();
					}
					message = lines.join('\n');

					warnings.push(message);
				} else {
					warnings.push(...args);
				}
			};
		}

		if (str.slice(0, i).includes('errors') || config.errors) {
			// eslint-disable-next-line no-console
			console.error = (...args) => {
				errors.push(...args);
			};
		}
	}

Domain

Subdomains

Called By

Frequently Asked Questions

What does run_test_variant() do?
run_test_variant() is a function in the svelte codebase, defined in packages/svelte/tests/runtime-legacy/shared.ts.
Where is run_test_variant() defined?
run_test_variant() is defined in packages/svelte/tests/runtime-legacy/shared.ts at line 241.
What does run_test_variant() call?
run_test_variant() calls 6 function(s): apply, assert_html_equal, assert_html_equal_with_options, clear, flushSync, reset.
What calls run_test_variant()?
run_test_variant() is called by 1 function(s): runtime_suite.

Analyze Your Own Codebase

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

Try Supermodel Free