add another test

defer-effects-in-pending-boundary
Rich Harris 21 hours ago
parent a1be776de4
commit d50b4d955a

@ -0,0 +1,46 @@
import { tick } from 'svelte';
import { test } from '../../test';
export default test({
async test({ assert, target }) {
await tick();
assert.htmlEqual(
target.innerHTML,
`
<p>hello from server</p>
<p>hello from server</p>
<p>hello from server</p>
<p>hello from server</p>
`
);
const [button1, button2] = target.querySelectorAll('button');
button1.click();
await tick();
assert.htmlEqual(
target.innerHTML,
`
<p>hello from browser</p>
<p>hello from browser</p>
<p>hello from server</p>
<p>hello from server</p>
`
);
button2.click();
await tick();
assert.htmlEqual(
target.innerHTML,
`
<p>hello from browser</p>
<p>hello from browser</p>
<p>hello from browser</p>
<p>hello from browser</p>
`
);
}
});

@ -0,0 +1,35 @@
<script>
let browser = typeof window !== 'undefined';
let a = Promise.withResolvers();
let b = Promise.withResolvers();
if (!browser) {
a.resolve(true);
b.resolve(true);
}
</script>
<button onclick={() => a.resolve(true)}>
resolve a
</button>
<button onclick={() => b.resolve(true)}>
resolve b
</button>
<svelte:boundary>
{#if await a.promise}
<p>hello from {browser ? 'browser' : 'server'}</p>
{/if}
<p>hello from {browser ? 'browser' : 'server'}</p>
</svelte:boundary>
<svelte:boundary>
{#if await b.promise}
<p>hello from {browser ? 'browser' : 'server'}</p>
{/if}
<p>hello from {browser ? 'browser' : 'server'}</p>
</svelte:boundary>
Loading…
Cancel
Save