aaa
Rich Harris 8 months ago
parent ed348c6cab
commit 255eec7fff

@ -0,0 +1,37 @@
import { tick } from 'svelte';
import { deferred } from '../../../../src/internal/shared/utils.js';
import { test } from '../../test';
/** @type {ReturnType<typeof deferred>} */
let d;
export default test({
html: `<p>pending</p>`,
get props() {
d = deferred();
return {
promise: d.promise
};
},
async test({ assert, target, component }) {
d.resolve(['a', 'b', 'c']);
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick();
assert.htmlEqual(target.innerHTML, '<p>a</p><p>b</p><p>c</p>');
d = deferred();
component.promise = d.promise;
await tick();
assert.htmlEqual(target.innerHTML, '<p>pending</p>');
d.resolve(['d', 'e', 'f']);
await Promise.resolve();
await tick();
assert.htmlEqual(target.innerHTML, '<p>d</p><p>e</p><p>f</p>');
}
});

@ -0,0 +1,13 @@
<script>
let { promise } = $props();
</script>
<svelte:boundary>
{#each await promise as item}
<p>{item}</p>
{/each}
{#snippet pending()}
<p>pending</p>
{/snippet}
</svelte:boundary>
Loading…
Cancel
Save