File tree Expand file tree Collapse file tree 2 files changed +28
-65
lines changed
packages/svelte/tests/runtime-runes/samples/derived-dependencies-2 Expand file tree Collapse file tree 2 files changed +28
-65
lines changed Original file line number Diff line number Diff line change @@ -5,34 +5,33 @@ export default test({
5
5
async test ( { assert, target } ) {
6
6
let [ btn1 , btn2 ] = target . querySelectorAll ( 'button' ) ;
7
7
8
- btn1 ?. click ( ) ;
9
- flushSync ( ) ;
10
- await Promise . resolve ( ) ;
11
-
12
- assert . htmlEqual ( target . innerHTML , `<button>hide</button><button>show</button` ) ;
13
-
14
- btn2 ?. click ( ) ;
15
- await Promise . resolve ( ) ;
16
- await Promise . resolve ( ) ;
17
-
8
+ flushSync ( ( ) => btn1 ?. click ( ) ) ;
18
9
assert . htmlEqual (
19
10
target . innerHTML ,
20
- `<h1>John Doe</h1><p>Body</p><div>123</div><button>hide</button><button>show</button>`
11
+ `
12
+ <button>toggle a</button>
13
+ <button>toggle b</button>
14
+ false/true/true
15
+ `
21
16
) ;
22
17
23
- btn1 ?. click ( ) ;
24
- flushSync ( ) ;
25
- await Promise . resolve ( ) ;
26
-
27
- assert . htmlEqual ( target . innerHTML , `<button>hide</button><button>show</button` ) ;
28
-
29
- btn2 ?. click ( ) ;
30
- await Promise . resolve ( ) ;
31
- await Promise . resolve ( ) ;
18
+ flushSync ( ( ) => btn2 ?. click ( ) ) ;
19
+ assert . htmlEqual (
20
+ target . innerHTML ,
21
+ `
22
+ <button>toggle a</button>
23
+ <button>toggle b</button>
24
+ `
25
+ ) ;
32
26
27
+ flushSync ( ( ) => btn2 ?. click ( ) ) ;
33
28
assert . htmlEqual (
34
29
target . innerHTML ,
35
- `<h1>John Doe</h1><p>Body</p><div>123</div><button>hide</button><button>show</button>`
30
+ `
31
+ <button>toggle a</button>
32
+ <button>toggle b</button>
33
+ false/true/true
34
+ `
36
35
) ;
37
36
}
38
37
} ) ;
Original file line number Diff line number Diff line change 1
1
<script >
2
- import { writable } from " svelte/store" ;
2
+ let a = $state (true );
3
+ let b = $state ({ c: true });
3
4
4
- const store = writable ({
5
- url: {
6
- pathname: ' 123'
7
- }
8
- })
9
- const page = {
10
- subscribe (fn ) {
11
- return store .subscribe (fn);
12
- }
13
- }
14
-
15
- let data = $state ({
16
- event : {
17
- author: ' John Doe' ,
18
- body: ' Body' ,
19
- foo: ' 123'
20
- },
21
- });
22
-
23
- const { event } = $derived (data);
5
+ const x = $derived (b);
24
6
</script >
25
7
26
- {#if event }
27
- <h1 >{event .author }</h1 >
28
- <p >{event .body }</p >
29
- <div >{$page .url .pathname }</div >
30
- {/if }
31
-
32
- <button onclick ={() => {
33
- data = {}
34
- store .update (v => ({... v }));
35
- }}>hide</button >
36
-
37
- <button onclick ={() => {
38
- data = {
39
- event: {
40
- author: ' John Doe' ,
41
- body: ' Body' ,
42
- foo: ' 123'
43
- },
44
- }
45
- queueMicrotask (() => {
46
- store .update (v => ({... v }));
47
- })
48
- }}>show</button >
8
+ <button onclick ={() => (a = ! a )}>toggle a</button >
9
+ <button onclick ={() => (b = b ? null : { c: true })}>toggle b</button >
49
10
11
+ {#if x }
12
+ {a }/{x .c }/{x .c }
13
+ {/if }
You can’t perform that action at this time.
0 commit comments