File tree Expand file tree Collapse file tree 2 files changed +81
-0
lines changed
packages/svelte/tests/runtime-runes/samples/async-boundary-coordination Expand file tree Collapse file tree 2 files changed +81
-0
lines changed Original file line number Diff line number Diff line change 1+ import { tick } from 'svelte' ;
2+ import { test } from '../../test' ;
3+
4+ export default test ( {
5+ async test ( { assert, target } ) {
6+ await tick ( ) ;
7+
8+ assert . htmlEqual (
9+ target . innerHTML ,
10+ `
11+ <p>hello from server</p>
12+ <p>hello from server</p>
13+ <p>hello from server</p>
14+ <p>hello from server</p>
15+ `
16+ ) ;
17+
18+ const [ button1 , button2 ] = target . querySelectorAll ( 'button' ) ;
19+
20+ button1 . click ( ) ;
21+ await tick ( ) ;
22+
23+ assert . htmlEqual (
24+ target . innerHTML ,
25+ `
26+ <p>hello from browser</p>
27+ <p>hello from browser</p>
28+ <p>hello from server</p>
29+ <p>hello from server</p>
30+ `
31+ ) ;
32+
33+ button2 . click ( ) ;
34+ await tick ( ) ;
35+
36+ assert . htmlEqual (
37+ target . innerHTML ,
38+ `
39+ <p>hello from browser</p>
40+ <p>hello from browser</p>
41+ <p>hello from browser</p>
42+ <p>hello from browser</p>
43+ `
44+ ) ;
45+ }
46+ } ) ;
Original file line number Diff line number Diff line change 1+ <script >
2+ let browser = typeof window !== ' undefined' ;
3+
4+ let a = Promise .withResolvers ();
5+ let b = Promise .withResolvers ();
6+
7+ if (! browser) {
8+ a .resolve (true );
9+ b .resolve (true );
10+ }
11+ </script >
12+
13+ <button onclick ={() => a .resolve (true )}>
14+ resolve a
15+ </button >
16+
17+ <button onclick ={() => b .resolve (true )}>
18+ resolve b
19+ </button >
20+
21+ <svelte:boundary >
22+ {#if await a .promise }
23+ <p >hello from {browser ? ' browser' : ' server' }</p >
24+ {/if }
25+
26+ <p >hello from {browser ? ' browser' : ' server' }</p >
27+ </svelte:boundary >
28+
29+ <svelte:boundary >
30+ {#if await b .promise }
31+ <p >hello from {browser ? ' browser' : ' server' }</p >
32+ {/if }
33+
34+ <p >hello from {browser ? ' browser' : ' server' }</p >
35+ </svelte:boundary >
You can’t perform that action at this time.
0 commit comments