mirror of https://github.com/sveltejs/svelte
chore: improve hydration tests (#10887)
* use server-rendered HTML as hydration test starting point * update tests * remove _before.html files * remove _before_head.html files * override output with _expected.html * expected output for binding-input case * remove unused files * fix * changesetpull/10892/head
parent
fe7c45ba13
commit
7f10642add
@ -0,0 +1,5 @@
|
||||
---
|
||||
'svelte': patch
|
||||
---
|
||||
|
||||
fix: correctly hydrate controlled each-else block
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><h1>Hello world!</h1><!--ssr:0-->
|
@ -1,2 +0,0 @@
|
||||
<!--ssr:0--><input />
|
||||
<p>Hello world!</p><!--ssr:0-->
|
@ -0,0 +1 @@
|
||||
<!--ssr:0--><input> <p>Hello world!</p><!--ssr:0-->
|
@ -1,3 +0,0 @@
|
||||
<!--ssr:0--><div><!-- test1 --></div>
|
||||
p
|
||||
<div><!-- test1 --><!-- test2 --></div><!--ssr:0-->
|
@ -1,8 +0,0 @@
|
||||
<!--ssr:0--><div>hello</div>
|
||||
|
||||
<div><div>bye</div></div>
|
||||
|
||||
<div>
|
||||
<div>aaa</div>
|
||||
<div>bbb</div>
|
||||
</div><!--ssr:0-->
|
@ -1,5 +0,0 @@
|
||||
<!--ssr:0-->
|
||||
<!--ssr:1--><p>This <code>p</code> and the <code>slot</code> below are direct children of the root.</p>
|
||||
<!--ssr:2--><main>There should be one</main><!--ssr:2-->
|
||||
<!--ssr:1-->
|
||||
<!--ssr:0-->
|
@ -1,3 +0,0 @@
|
||||
<!--ssr:0--><div>
|
||||
<!--ssr:1--><p>nested</p><!--ssr:1-->
|
||||
</div><!--ssr:0-->
|
@ -1,3 +0,0 @@
|
||||
<!--ssr:0-->
|
||||
<!--ssr:1--><p>nested</p><!--ssr:1-->
|
||||
<!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><h1>Hello world!</h1><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><hr><hr> <p></p> <p></p><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><h1>Hello world!</h1><!--ssr:0-->
|
@ -1,5 +0,0 @@
|
||||
<!--ssr:0--><ul><!--ssr:1-->
|
||||
<!--ssr:2--><li>animal</li><!--ssr:2-->
|
||||
<!--ssr:3--><li>vegetable</li><!--ssr:3-->
|
||||
<!--ssr:4--><li>mineral</li><!--ssr:4-->
|
||||
<!--ssr:1--></ul><!--ssr:0-->
|
@ -1,2 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:1--><!--ssr:each_else--><p>empty</p><!--ssr:1-->
|
||||
<!--ssr:2--><!--ssr:3--><p>a</p><!--ssr:3--><!--ssr:2--><!--ssr:0-->
|
@ -1,3 +1,13 @@
|
||||
import { test } from '../../test';
|
||||
|
||||
export default test({});
|
||||
export default test({
|
||||
server_props: {
|
||||
items1: [],
|
||||
items2: [{ name: 'a' }]
|
||||
},
|
||||
|
||||
props: {
|
||||
items1: [{ name: 'a' }],
|
||||
items2: []
|
||||
}
|
||||
});
|
||||
|
@ -1,12 +0,0 @@
|
||||
<!--ssr:0--><ul><!--ssr:1--><!--ssr:7--><li>a</li><!--ssr:7--><!--ssr:8--><li>b</li><!--ssr:8--><!--ssr:1--></ul>
|
||||
<ul><!--ssr:2--><!--ssr:9--><li>a</li><!--ssr:9--><!--ssr:10--><li>b</li><!--ssr:10--><!--ssr:2--></ul>
|
||||
<ul><!--ssr:3--><!--ssr:11--><li>a</li><!--ssr:11--><!--ssr:12--><li>b</li><!--ssr:12--><!--ssr:3--></ul>
|
||||
<!--ssr:4--><!--ssr:13--><li>a</li>
|
||||
<li>a</li><!--ssr:13--><!--ssr:14--><li>b</li>
|
||||
<li>b</li><!--ssr:14--><!--ssr:4-->
|
||||
<!--ssr:5--><!--ssr:15--><li>a</li>
|
||||
<li>a</li><!--ssr:15--><!--ssr:16--><li>b</li>
|
||||
<li>b</li><!--ssr:16--><!--ssr:5-->
|
||||
<!--ssr:6--><!--ssr:17--><li>a</li>
|
||||
<li>a</li><!--ssr:17--><!--ssr:18--><li>b</li>
|
||||
<li>b</li><!--ssr:18--><!--ssr:6--><!--ssr:0--></div>
|
@ -1,9 +0,0 @@
|
||||
<!--ssr:0--><ul><!--ssr:1--><!--ssr:7--><li>a</li><!--ssr:7--><!--ssr:1--></ul>
|
||||
<ul><!--ssr:2--><!--ssr:8--><li>a</li><!--ssr:8--><!--ssr:2--></ul>
|
||||
<ul><!--ssr:3--><!--ssr:9--><li>a</li><!--ssr:9--><!--ssr:3--></ul>
|
||||
<!--ssr:4--><!--ssr:10--><li>a</li>
|
||||
<li>a</li><!--ssr:10--><!--ssr:4-->
|
||||
<!--ssr:5--><!--ssr:11--><li>a</li>
|
||||
<li>a</li><!--ssr:11--><!--ssr:5-->
|
||||
<!--ssr:6--><!--ssr:12--><li>a</li>
|
||||
<li>a</li><!--ssr:12--><!--ssr:6--><!--ssr:0--></div>
|
@ -1,5 +0,0 @@
|
||||
<!--ssr:0--><ul><!--ssr:1-->
|
||||
<!--ssr:2--><li>animal</li><!--ssr:2-->
|
||||
<!--ssr:3--><li>vegetable</li><!--ssr:3-->
|
||||
<!--ssr:4--><li>mineral</li><!--ssr:4-->
|
||||
<!--ssr:1--></ul><!--ssr:0-->
|
@ -1,3 +0,0 @@
|
||||
<!--ssr:0--><h1>Hello, world</h1>
|
||||
<!--ssr:1--><p>foo</p><!--ssr:1-->
|
||||
<div><!--ssr:2--><p>foo</p><!--ssr:2--></div><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><div class="foo"></div><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><div class="foo"></div><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><div id="foo"></div><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><div class="bar" foo="bar"></div> <div class="bar" foo="bar"></div><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><div class="foo"></div><!--ssr:0-->
|
@ -1,3 +0,0 @@
|
||||
<!--ssr:0--><p><span>1</span>
|
||||
<!--ssr:1-->
|
||||
<!--ssr:if:true--><code>2</code><!--ssr:1--></p><!--ssr:0-->
|
@ -1,3 +0,0 @@
|
||||
<!--ssr:0--><div>
|
||||
<p>nested</p>
|
||||
</div><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><h1>Hello world!</h1><!--ssr:0-->
|
@ -1,5 +0,0 @@
|
||||
<!--ssr:0--><button>click me</button>
|
||||
<!--ssr:1-->
|
||||
<!--ssr:if:false-->
|
||||
<!--ssr:1-->
|
||||
<!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><p>1 2 <span>3</span></p><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:1--><!--ssr:1--><!--ssr:0-->
|
@ -1,6 +0,0 @@
|
||||
<!--ssr:0-->
|
||||
<!--ssr:1--><meta name="main_html" content="main_html"><!--ssr:1-->
|
||||
<meta name="main" content="main">
|
||||
<!--ssr:2--><!--ssr:3--><meta name="head_nested_html" content="head_nested_html"><!--ssr:3-->
|
||||
<meta name="head_nested" content="head_nested"><!--ssr:2--><!--ssr:4--><meta name="nested_html" content="nested_html"><!--ssr:4-->
|
||||
<meta name="nested" content="nested"><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><div>Just a dummy page.</div><!--ssr:0-->
|
@ -1,4 +0,0 @@
|
||||
<title>Some Title</title><!--ssr:0-->
|
||||
<link rel="canonical" href="/">
|
||||
<meta name="description" content="some description">
|
||||
<meta name="keywords" content="some keywords"><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
1 2 3
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--> 1 <!--ssr:1-->2<!--ssr:1--> 3<!--ssr:0-->
|
@ -1,2 +0,0 @@
|
||||
<!--ssr:0--><div><!--ssr:1--><!--ssr:if:true--><p>foo!</p><!--ssr:1-->
|
||||
<!--ssr:2--><!--ssr:if:true--><p>bar!</p><!--ssr:2--></div><!--ssr:0-->
|
@ -1,4 +0,0 @@
|
||||
<!--ssr:0-->
|
||||
<!--ssr:1-->
|
||||
<!--ssr:if:true-->x<!--ssr:1-->
|
||||
<!--ssr:0-->
|
@ -1,4 +0,0 @@
|
||||
<!--ssr:0-->
|
||||
<!--ssr:1-->
|
||||
<!--ssr:if:true--><!--ssr:1-->
|
||||
<!--ssr:0-->
|
@ -1,3 +1,11 @@
|
||||
import { test } from '../../test';
|
||||
|
||||
export default test({});
|
||||
export default test({
|
||||
server_props: {
|
||||
foo: ''
|
||||
},
|
||||
|
||||
props: {
|
||||
foo: 'x'
|
||||
}
|
||||
});
|
||||
|
@ -1,5 +0,0 @@
|
||||
<!--ssr:0--><p>before</p>
|
||||
<!--ssr:1-->
|
||||
<!--ssr:if:false-->
|
||||
<!--ssr:1-->
|
||||
<p>after</p><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:1--><!--ssr:if:false--><p>foo</p><!--ssr:1--><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:1--><!--ssr:if:false--><p>bar</p><!--ssr:1--><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:1--><!--ssr:if:true--><p>foo!</p><!--ssr:1--> <!--ssr:2--><!--ssr:2--><!--ssr:0-->
|
@ -1,4 +0,0 @@
|
||||
<!--ssr:0-->
|
||||
<!--ssr:1-->
|
||||
<!--ssr:if:true--><p>foo!</p><!--ssr:1-->
|
||||
<!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><a href="/bar">foo</a><!--ssr:0-->
|
@ -1,5 +1,5 @@
|
||||
<script>
|
||||
let browser = typeof window !== 'undefined';
|
||||
let { browser } = $props();
|
||||
</script>
|
||||
|
||||
<a href={browser ? '/foo': '/bar'}>foo</a>
|
||||
|
@ -1,2 +0,0 @@
|
||||
<!--ssr:0--><noscript>JavaScript is required for this site.</noscript>
|
||||
<h1>Hello!</h1><p>Count: 0</p><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:1--><p>foo</p><!--ssr:1--><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:1--><p>bar</p><!--ssr:1--><!--ssr:0-->
|
@ -1,2 +0,0 @@
|
||||
<p><p>invalid</p></p>
|
||||
<p><p>invalid</p></p>
|
@ -1,6 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:1--><p><!--ssr:2--></p>
|
||||
<p>invalid</p><!--ssr:2--><p></p><!--ssr:1-->
|
||||
<p><!--ssr:3--></p>
|
||||
<p>invalid</p>
|
||||
<!--ssr:3-->
|
||||
<p></p><!--ssr:0-->
|
Before Width: | Height: | Size: 103 B |
@ -1,10 +0,0 @@
|
||||
<!--ssr:0--><div>before</div>
|
||||
<br />
|
||||
|
||||
<!--ssr:1-->
|
||||
<!--ssr:2--><!--ssr:3-->a<!--ssr:3--><!--ssr:2-->
|
||||
<!--ssr:4--><!--ssr:5-->b<!--ssr:5--><!--ssr:4-->
|
||||
<!--ssr:6--><!--ssr:7-->c<!--ssr:7--><!--ssr:6-->
|
||||
<!--ssr:1-->
|
||||
|
||||
<div>after</div><!--ssr:0-->
|
@ -1,4 +0,0 @@
|
||||
<!--ssr:0-->
|
||||
<!--ssr:1--><p>this is some html</p>
|
||||
<p>and so is this</p><!--ssr:1-->
|
||||
<!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><h1>Hello client!</h1><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><h1>Hello world!</h1><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:0-->
|
@ -1,3 +1,11 @@
|
||||
import { test } from '../../test';
|
||||
|
||||
export default test({});
|
||||
export default test({
|
||||
server_props: {
|
||||
x: ''
|
||||
},
|
||||
|
||||
props: {
|
||||
x: 'x'
|
||||
}
|
||||
});
|
||||
|
@ -1,5 +1,5 @@
|
||||
<script>
|
||||
let x = typeof window === 'undefined' ? '' : 'x'
|
||||
let { x } = $props();
|
||||
</script>
|
||||
|
||||
{x}
|
||||
|
@ -1 +0,0 @@
|
||||
<!--ssr:0--><!--ssr:1--><div><!--ssr:2--><div slot="foo">foo override</div><!--ssr:2--> <!--ssr:3-->default<!--ssr:3--></div><!--ssr:1--><!--ssr:0-->
|
@ -1 +0,0 @@
|
||||
<!--ssr:0-->Text<!--ssr:0-->
|
Loading…
Reference in new issue