Skip to content

Commit 25c57a2

Browse files
committed
Fixing sveltejs#2668, add test case "each-block-keyed-containing-self-in-if"
1 parent da8c245 commit 25c57a2

File tree

3 files changed

+70
-0
lines changed

3 files changed

+70
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<script>
2+
export let item;
3+
</script>
4+
5+
<span>{item.id}</span>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
export default {
2+
props: {
3+
list: [
4+
{ id: 1 },
5+
{ id: 2 },
6+
{ id: 3, children: [{ id: 30 }, { id: 31 }, { id: 32 }] },
7+
],
8+
activeId: null,
9+
},
10+
11+
html: `
12+
<ul>
13+
<li><span>1</span></li>
14+
<li><span>2</span></li>
15+
<li><span>3</span></li>
16+
</ul>
17+
`,
18+
19+
test({ assert, component, target }) {
20+
component.activeId = 3;
21+
22+
assert.htmlEqual(target.innerHTML, `
23+
<ul>
24+
<li><span>1</span></li>
25+
<li><span>2</span></li>
26+
<li>
27+
<span>3</span>
28+
<ul>
29+
<li><span>30</span></li>
30+
<li><span>31</span></li>
31+
<li><span>32</span></li>
32+
</ul>
33+
</li>
34+
</ul>
35+
`);
36+
37+
38+
component.activeId = null;
39+
40+
assert.htmlEqual(target.innerHTML, `
41+
<ul>
42+
<li><span>1</span></li>
43+
<li><span>2</span></li>
44+
<li><span>3</span></li>
45+
</ul>
46+
`);
47+
}
48+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<script>
2+
import Nested from './Nested.svelte';
3+
4+
export let list;
5+
export let activeId;
6+
</script>
7+
8+
<ul>
9+
{#each list as item (item.id)}
10+
<li>
11+
<Nested {item} />
12+
{#if item.id === activeId && item.children}
13+
<svelte:self list={item.children} />
14+
{/if}
15+
</li>
16+
{/each}
17+
</ul>

0 commit comments

Comments
 (0)