File tree Expand file tree Collapse file tree 2 files changed +44
-17
lines changed
packages/svelte/tests/runtime-runes/samples/async-expression Expand file tree Collapse file tree 2 files changed +44
-17
lines changed Original file line number Diff line number Diff line change @@ -6,30 +6,53 @@ import { test } from '../../test';
66let d ;
77
88export default test ( {
9- html : `<p>pending</p>` ,
9+ html : `
10+ <button>reset</button>
11+ <button>hello</button>
12+ <button>goodbye</button>
13+ <p>pending</p>
14+ ` ,
1015
11- get props ( ) {
12- d = deferred ( ) ;
16+ async test ( { assert , target } ) {
17+ const [ reset , hello , goodbye ] = target . querySelectorAll ( 'button' ) ;
1318
14- return {
15- promise : d . promise
16- } ;
17- } ,
18-
19- async test ( { assert, target, component } ) {
20- d . resolve ( 'hello' ) ;
19+ flushSync ( ( ) => hello . click ( ) ) ;
2120 await Promise . resolve ( ) ;
2221 await Promise . resolve ( ) ;
2322 await tick ( ) ;
2423 flushSync ( ) ;
25- assert . htmlEqual ( target . innerHTML , '<h1>hello</h1>' ) ;
24+ assert . htmlEqual (
25+ target . innerHTML ,
26+ `
27+ <button>reset</button>
28+ <button>hello</button>
29+ <button>goodbye</button>
30+ <h1>hello</h1>
31+ `
32+ ) ;
2633
27- component . promise = ( d = deferred ( ) ) . promise ;
34+ flushSync ( ( ) => reset . click ( ) ) ;
2835 await tick ( ) ;
29- assert . htmlEqual ( target . innerHTML , '<h1>hello</h1>' ) ;
36+ assert . htmlEqual (
37+ target . innerHTML ,
38+ `
39+ <button>reset</button>
40+ <button>hello</button>
41+ <button>goodbye</button>
42+ <h1>hello</h1>
43+ `
44+ ) ;
3045
31- d . resolve ( 'wheee' ) ;
46+ flushSync ( ( ) => goodbye . click ( ) ) ;
3247 await tick ( ) ;
33- assert . htmlEqual ( target . innerHTML , '<h1>wheee</h1>' ) ;
48+ assert . htmlEqual (
49+ target . innerHTML ,
50+ `
51+ <button>reset</button>
52+ <button>hello</button>
53+ <button>goodbye</button>
54+ <h1>goodbye</h1>
55+ `
56+ ) ;
3457 }
3558} ) ;
Original file line number Diff line number Diff line change 11<script >
2- let { promise } = $props ( );
2+ let deferred = $state ( Promise . withResolvers () );
33 </script >
44
5+ <button onclick ={() => deferred = Promise .withResolvers ()}>reset</button >
6+ <button onclick ={() => deferred .resolve (' hello' )}>hello</button >
7+ <button onclick ={() => deferred .resolve (' goodbye' )}>goodbye</button >
8+
59<svelte:boundary >
6- <h1 >{await promise }</h1 >
10+ <h1 >{await deferred . promise }</h1 >
711
812 {#snippet pending ()}
913 <p >pending</p >
You can’t perform that action at this time.
0 commit comments