Fixing #2668, add test case "each-block-keyed-containing-self-in-if"

pull/2717/head
Igor Emets 6 years ago
parent da8c245516
commit 25c57a2de0

@ -0,0 +1,5 @@
<script>
export let item;
</script>
<span>{item.id}</span>

@ -0,0 +1,48 @@
export default {
props: {
list: [
{ id: 1 },
{ id: 2 },
{ id: 3, children: [{ id: 30 }, { id: 31 }, { id: 32 }] },
],
activeId: null,
},
html: `
<ul>
<li><span>1</span></li>
<li><span>2</span></li>
<li><span>3</span></li>
</ul>
`,
test({ assert, component, target }) {
component.activeId = 3;
assert.htmlEqual(target.innerHTML, `
<ul>
<li><span>1</span></li>
<li><span>2</span></li>
<li>
<span>3</span>
<ul>
<li><span>30</span></li>
<li><span>31</span></li>
<li><span>32</span></li>
</ul>
</li>
</ul>
`);
component.activeId = null;
assert.htmlEqual(target.innerHTML, `
<ul>
<li><span>1</span></li>
<li><span>2</span></li>
<li><span>3</span></li>
</ul>
`);
}
};

@ -0,0 +1,17 @@
<script>
import Nested from './Nested.svelte';
export let list;
export let activeId;
</script>
<ul>
{#each list as item (item.id)}
<li>
<Nested {item} />
{#if item.id === activeId && item.children}
<svelte:self list={item.children} />
{/if}
</li>
{/each}
</ul>
Loading…
Cancel
Save