unit test for child rendering lifecycle

pull/2752/head
Colin Casey 6 years ago
parent ac3bbbaa55
commit 59c4b76383

@ -0,0 +1,30 @@
<script>
import { onMount, beforeUpdate, afterUpdate } from 'svelte';
import order from './order.js';
export let index;
export let id;
export let name;
function logRender () {
order.push(`${index}: render`);
return index;
}
beforeUpdate(() => {
order.push(`${index}: beforeUpdate`);
});
afterUpdate(() => {
order.push(`${index}: afterUpdate`);
});
onMount(() => {
order.push(`${index}: onMount`);
});
</script>
<li>
{logRender()}
</li>

@ -0,0 +1,24 @@
import order from './order.js';
export default {
skip_if_ssr: true,
test({ assert, component, target }) {
assert.deepEqual(order, [
'1: beforeUpdate',
'1: render',
'2: beforeUpdate',
'2: render',
'3: beforeUpdate',
'3: render',
'1: afterUpdate',
'1: onMount',
'2: afterUpdate',
'2: onMount',
'3: afterUpdate',
'3: onMount'
]);
order.length = 0;
}
};

@ -0,0 +1,11 @@
<script>
import Item from './Item.svelte';
</script>
<ul>
{#each [1,2,3] as index}
<Item {index} />
{/each}
</ul>
Loading…
Cancel
Save