File tree Expand file tree Collapse file tree 2 files changed +47
-11
lines changed
packages/svelte/tests/runtime-runes/samples/effect-active-derived Expand file tree Collapse file tree 2 files changed +47
-11
lines changed Original file line number Diff line number Diff line change @@ -2,12 +2,40 @@ import { flushSync } from 'svelte';
2
2
import { test } from '../../test' ;
3
3
4
4
export default test ( {
5
- html : `<button>toggle (false)</button>` ,
5
+ html : `
6
+ <button>toggle outer</button>
7
+ <button>toggle inner</button>
8
+ <button>reset</button>
9
+ ` ,
6
10
7
11
test ( { assert, target } ) {
8
- const btn = target . querySelector ( 'button' ) ;
9
- flushSync ( ( ) => btn ?. click ( ) ) ;
12
+ const [ outer , inner , reset ] = target . querySelectorAll ( 'button' ) ;
10
13
11
- assert . htmlEqual ( target . innerHTML , `<button>toggle (true)</button><p>bar is true</p>` ) ;
14
+ flushSync ( ( ) => outer ?. click ( ) ) ;
15
+ flushSync ( ( ) => inner ?. click ( ) ) ;
16
+
17
+ assert . htmlEqual (
18
+ target . innerHTML ,
19
+ `
20
+ <button>toggle outer</button>
21
+ <button>toggle inner</button>
22
+ <button>reset</button>
23
+ <p>v is true</p>
24
+ `
25
+ ) ;
26
+
27
+ flushSync ( ( ) => reset ?. click ( ) ) ;
28
+ flushSync ( ( ) => inner ?. click ( ) ) ;
29
+ flushSync ( ( ) => outer ?. click ( ) ) ;
30
+
31
+ assert . htmlEqual (
32
+ target . innerHTML ,
33
+ `
34
+ <button>toggle outer</button>
35
+ <button>toggle inner</button>
36
+ <button>reset</button>
37
+ <p>v is true</p>
38
+ `
39
+ ) ;
12
40
}
13
41
} ) ;
Original file line number Diff line number Diff line change 1
1
<script >
2
2
let value = $state (false );
3
-
4
3
const fn = () => {
5
4
if ($effect .active ()) {
6
5
$effect (() => {
10
9
return value;
11
10
};
12
11
13
- let foo = $state (false )
14
- let bar = $derived (foo ? fn () : false );
12
+ let outer = $state (false );
13
+ let inner = $state (false );
14
+ let v = $derived (inner ? fn () : false );
15
15
</script >
16
16
17
- <button onclick ={() => foo = ! foo }>
18
- toggle ({foo })
17
+ <button onclick ={() => outer = ! outer }>
18
+ toggle outer
19
+ </button >
20
+
21
+ <button onclick ={() => inner = ! inner }>
22
+ toggle inner
23
+ </button >
24
+
25
+ <button onclick ={() => outer = inner = value = false }>
26
+ reset
19
27
</button >
20
28
21
- {#if bar }
22
- <p >bar is true</p >
29
+ {#if outer && v }
30
+ <p >v is true</p >
23
31
{/if }
You can’t perform that action at this time.
0 commit comments