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
Source
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