diff --git a/packages/svelte/tests/hydration/samples/binding-input/_expected.html b/packages/svelte/tests/hydration/samples/binding-input/_expected.html
index b5bc6af161..e36735dc6b 100644
--- a/packages/svelte/tests/hydration/samples/binding-input/_expected.html
+++ b/packages/svelte/tests/hydration/samples/binding-input/_expected.html
@@ -1 +1 @@
-
Hello world!
+ Hello world!
diff --git a/packages/svelte/tests/hydration/samples/dynamic-text-changed/_expected.html b/packages/svelte/tests/hydration/samples/dynamic-text-changed/_expected.html
index b163603869..11e3f55d6b 100644
--- a/packages/svelte/tests/hydration/samples/dynamic-text-changed/_expected.html
+++ b/packages/svelte/tests/hydration/samples/dynamic-text-changed/_expected.html
@@ -1 +1 @@
-Hello everybody!
+Hello everybody!
diff --git a/packages/svelte/tests/hydration/samples/each-block-0-on-server-more-on-client/_expected.html b/packages/svelte/tests/hydration/samples/each-block-0-on-server-more-on-client/_expected.html
index 5de1a42d70..2b2a31b926 100644
--- a/packages/svelte/tests/hydration/samples/each-block-0-on-server-more-on-client/_expected.html
+++ b/packages/svelte/tests/hydration/samples/each-block-0-on-server-more-on-client/_expected.html
@@ -1,9 +1 @@
-
-
-
-a
-a
-a
-a
-a
-a
+ a a a a a a
diff --git a/packages/svelte/tests/hydration/samples/each-block-fallback-mismatch/_expected.html b/packages/svelte/tests/hydration/samples/each-block-fallback-mismatch/_expected.html
index fcfd9fe9ef..af66d98b25 100644
--- a/packages/svelte/tests/hydration/samples/each-block-fallback-mismatch/_expected.html
+++ b/packages/svelte/tests/hydration/samples/each-block-fallback-mismatch/_expected.html
@@ -1,2 +1 @@
-a
-empty
+a
empty
diff --git a/packages/svelte/tests/hydration/samples/each-block-less-nodes-on-client/_expected.html b/packages/svelte/tests/hydration/samples/each-block-less-nodes-on-client/_expected.html
index 5de1a42d70..2b2a31b926 100644
--- a/packages/svelte/tests/hydration/samples/each-block-less-nodes-on-client/_expected.html
+++ b/packages/svelte/tests/hydration/samples/each-block-less-nodes-on-client/_expected.html
@@ -1,9 +1 @@
-
-
-
-a
-a
-a
-a
-a
-a
+ a a a a a a
diff --git a/packages/svelte/tests/hydration/samples/each-block-more-nodes-on-client/_expected.html b/packages/svelte/tests/hydration/samples/each-block-more-nodes-on-client/_expected.html
index 453cee352b..fa72a80dcd 100644
--- a/packages/svelte/tests/hydration/samples/each-block-more-nodes-on-client/_expected.html
+++ b/packages/svelte/tests/hydration/samples/each-block-more-nodes-on-client/_expected.html
@@ -1,9 +1 @@
-
-
-
-a
-abb
-a
-abb
-a
-abb
+ a ab b a ab b a ab b
diff --git a/packages/svelte/tests/hydration/samples/element-attribute-added/_expected.html b/packages/svelte/tests/hydration/samples/element-attribute-added/_expected.html
index 73cf4a84b6..7d8e91c757 100644
--- a/packages/svelte/tests/hydration/samples/element-attribute-added/_expected.html
+++ b/packages/svelte/tests/hydration/samples/element-attribute-added/_expected.html
@@ -1 +1 @@
-
+
diff --git a/packages/svelte/tests/hydration/samples/element-attribute-changed/_expected.html b/packages/svelte/tests/hydration/samples/element-attribute-changed/_expected.html
index 73cf4a84b6..7d8e91c757 100644
--- a/packages/svelte/tests/hydration/samples/element-attribute-changed/_expected.html
+++ b/packages/svelte/tests/hydration/samples/element-attribute-changed/_expected.html
@@ -1 +1 @@
-
+
diff --git a/packages/svelte/tests/hydration/samples/element-attribute-removed/_expected.html b/packages/svelte/tests/hydration/samples/element-attribute-removed/_expected.html
index bbd534112d..a6c1be8b49 100644
--- a/packages/svelte/tests/hydration/samples/element-attribute-removed/_expected.html
+++ b/packages/svelte/tests/hydration/samples/element-attribute-removed/_expected.html
@@ -1 +1 @@
-
+
diff --git a/packages/svelte/tests/hydration/samples/noscript/_expected.html b/packages/svelte/tests/hydration/samples/noscript/_expected.html
index be193b8c98..990ce87303 100644
--- a/packages/svelte/tests/hydration/samples/noscript/_expected.html
+++ b/packages/svelte/tests/hydration/samples/noscript/_expected.html
@@ -1,2 +1 @@
-
-Hello!
Count: 1
+ Hello!
Count: 1
diff --git a/packages/svelte/tests/hydration/samples/raw-repair/_expected.html b/packages/svelte/tests/hydration/samples/raw-repair/_expected.html
new file mode 100644
index 0000000000..39714f0fd3
--- /dev/null
+++ b/packages/svelte/tests/hydration/samples/raw-repair/_expected.html
@@ -0,0 +1 @@
+invalid
invalid
diff --git a/packages/svelte/tests/hydration/samples/standalone-component/Child.svelte b/packages/svelte/tests/hydration/samples/standalone-component/Child.svelte
new file mode 100644
index 0000000000..b69380af2b
--- /dev/null
+++ b/packages/svelte/tests/hydration/samples/standalone-component/Child.svelte
@@ -0,0 +1 @@
+child
diff --git a/packages/svelte/tests/hydration/samples/standalone-component/_config.js b/packages/svelte/tests/hydration/samples/standalone-component/_config.js
new file mode 100644
index 0000000000..5e08315e29
--- /dev/null
+++ b/packages/svelte/tests/hydration/samples/standalone-component/_config.js
@@ -0,0 +1,4 @@
+import { test } from '../../test';
+
+// Ensure that we don't create additional comment nodes for standalone components
+export default test({});
diff --git a/packages/svelte/tests/hydration/samples/standalone-component/_expected.html b/packages/svelte/tests/hydration/samples/standalone-component/_expected.html
new file mode 100644
index 0000000000..96850f7bdf
--- /dev/null
+++ b/packages/svelte/tests/hydration/samples/standalone-component/_expected.html
@@ -0,0 +1 @@
+child
child
child
child
diff --git a/packages/svelte/tests/hydration/samples/standalone-component/main.svelte b/packages/svelte/tests/hydration/samples/standalone-component/main.svelte
new file mode 100644
index 0000000000..8d6342246d
--- /dev/null
+++ b/packages/svelte/tests/hydration/samples/standalone-component/main.svelte
@@ -0,0 +1,11 @@
+
+
+{#if true}
+
+{/if}
+
+{#each [1, 2, 3] as n}
+
+{/each}
diff --git a/packages/svelte/tests/hydration/samples/text-empty/_expected.html b/packages/svelte/tests/hydration/samples/text-empty/_expected.html
index 5592a725f3..2e03580f42 100644
--- a/packages/svelte/tests/hydration/samples/text-empty/_expected.html
+++ b/packages/svelte/tests/hydration/samples/text-empty/_expected.html
@@ -1 +1 @@
-x
\ No newline at end of file
+x
diff --git a/packages/svelte/tests/hydration/test.ts b/packages/svelte/tests/hydration/test.ts
index 0fcdc6f1b4..c186802711 100644
--- a/packages/svelte/tests/hydration/test.ts
+++ b/packages/svelte/tests/hydration/test.ts
@@ -52,8 +52,10 @@ const { test, run } = suite(async (config, cwd) => {
props: config.server_props ?? config.props ?? {}
});
+ const override = read(`${cwd}/_override.html`);
+
fs.writeFileSync(`${cwd}/_output/body.html`, rendered.html + '\n');
- target.innerHTML = read(`${cwd}/_override.html`) ?? rendered.html;
+ target.innerHTML = override ?? rendered.html;
if (rendered.head) {
fs.writeFileSync(`${cwd}/_output/head.html`, rendered.head + '\n');
@@ -109,12 +111,14 @@ const { test, run } = suite(async (config, cwd) => {
throw new Error(`Unexpected errors: ${errors.join('\n')}`);
}
- const expected = read(`${cwd}/_expected.html`) ?? rendered.html;
- assert_html_equal(target.innerHTML, expected);
+ if (!override) {
+ const expected = read(`${cwd}/_expected.html`) ?? rendered.html;
+ assert.equal(target.innerHTML.trim(), expected.trim());
+ }
if (rendered.head) {
const expected = read(`${cwd}/_expected_head.html`) ?? rendered.head;
- assert_html_equal(head.innerHTML, expected);
+ assert.equal(head.innerHTML.trim(), expected.trim());
}
if (config.snapshot) {