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