From 1494c0cba45b1c7c295ba9e00bd06f38496ba63a Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 6 Feb 2024 09:42:07 -0500 Subject: [PATCH] use SSR entry point for SSR tests --- packages/svelte/tests/helpers.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/svelte/tests/helpers.js b/packages/svelte/tests/helpers.js index a8e3d605d9..66902e46f4 100644 --- a/packages/svelte/tests/helpers.js +++ b/packages/svelte/tests/helpers.js @@ -2,6 +2,7 @@ import * as fs from 'node:fs'; import * as path from 'node:path'; import glob from 'tiny-glob/sync.js'; import { compile, compileModule } from 'svelte/compiler'; +import { fileURLToPath, URL } from 'node:url'; /** * @param {string} file @@ -60,6 +61,17 @@ export function compile_directory(cwd, generate, compileOptions = {}) { fs.rmSync(output_dir, { recursive: true, force: true }); + let emit = write; + + if (generate === 'server') { + const ssr_entry = path.resolve(__dirname, '../src/main/main-server.js'); + + emit = (file, contents) => { + const relative = path.relative(path.dirname(file), ssr_entry); + write(file, contents.replace(/from 'svelte'/g, `from '${relative}'`)); + }; + } + for (const file of glob('**', { cwd, filesOnly: true })) { if (file.startsWith('_')) continue; @@ -70,7 +82,7 @@ export function compile_directory(cwd, generate, compileOptions = {}) { const out = `${output_dir}/${file}`; if (file.endsWith('.svelte.js')) { const compiled = compileModule(text, opts); - write(out, compiled.js.code); + emit(out, compiled.js.code); } else { // for non-runes tests, just re-export from the original source file — this // allows the `_config.js` module to import shared state to use in tests @@ -82,12 +94,12 @@ export function compile_directory(cwd, generate, compileOptions = {}) { result += `\nexport { default } from '${source}';`; } - write(out, result); + emit(out, result); } } else if (file.endsWith('.svelte')) { const compiled = compile(text, opts); - write(`${output_dir}/${file}.js`, compiled.js.code); + emit(`${output_dir}/${file}.js`, compiled.js.code); if (compiled.css) { write(`${output_dir}/${file}.css`, compiled.css.code);