From ec18cc8295c7ac04168739974f8fc58b3598a80c Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 9 Jul 2024 15:52:22 -0400 Subject: [PATCH] update tests --- .../3-transform/server/transform-server.js | 3 +- packages/svelte/src/internal/server/index.js | 2 +- .../samples/css/_expected_head.html | 5 +++ ...expected-head.html => _expected_head.html} | 0 ...expected-head.html => _expected_head.html} | 0 ...expected-head.html => _expected_head.html} | 0 ...expected-head.html => _expected_head.html} | 0 ...expected-head.html => _expected_head.html} | 0 .../tests/server-side-rendering/test.ts | 37 +++++-------------- 9 files changed, 18 insertions(+), 29 deletions(-) create mode 100644 packages/svelte/tests/server-side-rendering/samples/css/_expected_head.html rename packages/svelte/tests/server-side-rendering/samples/head-html-and-component/{_expected-head.html => _expected_head.html} (100%) rename packages/svelte/tests/server-side-rendering/samples/head-meta-hydrate-duplicate/{_expected-head.html => _expected_head.html} (100%) rename packages/svelte/tests/server-side-rendering/samples/head-multiple-title/{_expected-head.html => _expected_head.html} (100%) rename packages/svelte/tests/server-side-rendering/samples/head-no-duplicates-with-binding/{_expected-head.html => _expected_head.html} (100%) rename packages/svelte/tests/server-side-rendering/samples/head-title/{_expected-head.html => _expected_head.html} (100%) diff --git a/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js b/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js index 0106223a7f..c1da23223b 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js @@ -2159,11 +2159,12 @@ export function server_component(analysis, options) { const body = [...state.hoisted, ...module.body]; - if (options.css === 'injected') { + if (analysis.css.ast !== null && options.css === 'injected') { body.push( b.const( '$$css', b.object([ + b.init('hash', b.literal(analysis.css.hash)), b.init('code', b.literal(render_stylesheet(analysis.source, analysis, options).code)) ]) ) diff --git a/packages/svelte/src/internal/server/index.js b/packages/svelte/src/internal/server/index.js index 49ba77869a..79843c060a 100644 --- a/packages/svelte/src/internal/server/index.js +++ b/packages/svelte/src/internal/server/index.js @@ -133,7 +133,7 @@ export function render(component, options = {}) { let head = payload.head.out + payload.head.title; for (const { hash, code } of payload.css) { - head += ``; + head += ``; } return { diff --git a/packages/svelte/tests/server-side-rendering/samples/css/_expected_head.html b/packages/svelte/tests/server-side-rendering/samples/css/_expected_head.html new file mode 100644 index 0000000000..7281935646 --- /dev/null +++ b/packages/svelte/tests/server-side-rendering/samples/css/_expected_head.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/packages/svelte/tests/server-side-rendering/samples/head-html-and-component/_expected-head.html b/packages/svelte/tests/server-side-rendering/samples/head-html-and-component/_expected_head.html similarity index 100% rename from packages/svelte/tests/server-side-rendering/samples/head-html-and-component/_expected-head.html rename to packages/svelte/tests/server-side-rendering/samples/head-html-and-component/_expected_head.html diff --git a/packages/svelte/tests/server-side-rendering/samples/head-meta-hydrate-duplicate/_expected-head.html b/packages/svelte/tests/server-side-rendering/samples/head-meta-hydrate-duplicate/_expected_head.html similarity index 100% rename from packages/svelte/tests/server-side-rendering/samples/head-meta-hydrate-duplicate/_expected-head.html rename to packages/svelte/tests/server-side-rendering/samples/head-meta-hydrate-duplicate/_expected_head.html diff --git a/packages/svelte/tests/server-side-rendering/samples/head-multiple-title/_expected-head.html b/packages/svelte/tests/server-side-rendering/samples/head-multiple-title/_expected_head.html similarity index 100% rename from packages/svelte/tests/server-side-rendering/samples/head-multiple-title/_expected-head.html rename to packages/svelte/tests/server-side-rendering/samples/head-multiple-title/_expected_head.html diff --git a/packages/svelte/tests/server-side-rendering/samples/head-no-duplicates-with-binding/_expected-head.html b/packages/svelte/tests/server-side-rendering/samples/head-no-duplicates-with-binding/_expected_head.html similarity index 100% rename from packages/svelte/tests/server-side-rendering/samples/head-no-duplicates-with-binding/_expected-head.html rename to packages/svelte/tests/server-side-rendering/samples/head-no-duplicates-with-binding/_expected_head.html diff --git a/packages/svelte/tests/server-side-rendering/samples/head-title/_expected-head.html b/packages/svelte/tests/server-side-rendering/samples/head-title/_expected_head.html similarity index 100% rename from packages/svelte/tests/server-side-rendering/samples/head-title/_expected-head.html rename to packages/svelte/tests/server-side-rendering/samples/head-title/_expected_head.html diff --git a/packages/svelte/tests/server-side-rendering/test.ts b/packages/svelte/tests/server-side-rendering/test.ts index 7f8e56564b..27a48efa83 100644 --- a/packages/svelte/tests/server-side-rendering/test.ts +++ b/packages/svelte/tests/server-side-rendering/test.ts @@ -24,9 +24,13 @@ const { test, run } = suite(async (config, test_dir) => { const Component = (await import(`${test_dir}/_output/server/main.svelte.js`)).default; const expected_html = try_read_file(`${test_dir}/_expected.html`); const rendered = render(Component, { props: config.props || {} }); - const { body, head, css } = rendered; + const { body, head } = rendered; - fs.writeFileSync(`${test_dir}/_actual.html`, body); + fs.writeFileSync(`${test_dir}/_output/rendered.html`, body); + + if (head) { + fs.writeFileSync(`${test_dir}/_output/rendered_head.html`, head); + } try { assert_html_equal_with_options(body, expected_html || '', { @@ -43,38 +47,17 @@ const { test, run } = suite(async (config, test_dir) => { } } - if (fs.existsSync(`${test_dir}/_expected-head.html`)) { - fs.writeFileSync(`${test_dir}/_actual-head.html`, head); - + if (fs.existsSync(`${test_dir}/_expected_head.html`)) { try { assert_html_equal_with_options( head, - fs.readFileSync(`${test_dir}/_expected-head.html`, 'utf-8'), + fs.readFileSync(`${test_dir}/_expected_head.html`, 'utf-8'), {} ); } catch (error: any) { if (should_update_expected()) { - fs.writeFileSync(`${test_dir}/_expected-head.html`, head); - console.log(`Updated ${test_dir}/_expected-head.html.`); - error.message += '\n' + `${test_dir}/main.svelte`; - } else { - throw error; - } - } - } - - if (fs.existsSync(`${test_dir}/_expected.css`)) { - fs.writeFileSync(`${test_dir}/_actual.css`, css); - - try { - assert.equal( - css.replaceAll('\r', ''), - fs.readFileSync(`${test_dir}/_expected.css`, 'utf-8').replaceAll('\r', '') - ); - } catch (error: any) { - if (should_update_expected()) { - fs.writeFileSync(`${test_dir}/_expected.css`, css); - console.log(`Updated ${test_dir}/_expected.css.`); + fs.writeFileSync(`${test_dir}/_expected_head.html`, head); + console.log(`Updated ${test_dir}/_expected_head.html.`); error.message += '\n' + `${test_dir}/main.svelte`; } else { throw error;