update test

aaa
Rich Harris 8 months ago
parent 118e28445d
commit 05d8cb22dd

@ -16,12 +16,20 @@ export default test({
};
},
async test({ assert, target }) {
async test({ assert, target, component }) {
d.resolve('hello');
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(target.innerHTML, '<p>hello</p>');
assert.htmlEqual(target.innerHTML, '<h1>hello</h1>');
component.promise = (d = deferred()).promise;
await tick();
assert.htmlEqual(target.innerHTML, '<p>pending</p>');
d.resolve('wheee');
await tick();
assert.htmlEqual(target.innerHTML, '<h1>wheee</h1>');
}
});

@ -3,7 +3,7 @@
</script>
<svelte:boundary>
<p>{await promise}</p>
<h1>{await promise}</h1>
{#snippet pending()}
<p>pending</p>

@ -0,0 +1,35 @@
import { flushSync, 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 }) {
d.resolve('hello');
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(target.innerHTML, '<h1>hello</h1>');
component.promise = (d = deferred()).promise;
await tick();
assert.htmlEqual(target.innerHTML, '<p>pending</p>');
d.resolve('wheee');
await tick();
assert.htmlEqual(target.innerHTML, '<h1>wheee</h1>');
}
});

@ -0,0 +1,15 @@
<script>
let { promise } = $props();
</script>
{#snippet hello(message)}
<h1>{message}</h1>
{/snippet}
<svelte:boundary>
{@render hello(await promise)}
{#snippet pending()}
<p>pending</p>
{/snippet}
</svelte:boundary>
Loading…
Cancel
Save