chore: update/simplify test (#16630)

* update/simplify test

* oops

* simplify effect-order-7
pull/16633/head
Rich Harris 3 weeks ago committed by GitHub
parent 95e5175581
commit 7b2d774627
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1,11 +1,12 @@
<script> <script>
import B from './B.svelte'; import B from './B.svelte';
let { boolean, closed } = $props(); let { boolean, closed, close } = $props();
// this runs after the effect in B, because child effects run first
$effect(() => { $effect(() => {
console.log(boolean); console.log({ boolean, closed });
}); });
</script> </script>
<B {closed} /> <B {closed} {close} />

@ -1,7 +1,5 @@
<script> <script>
import { close } from './Child.svelte'; let { closed, close } = $props();
let { closed } = $props();
$effect(() => { $effect(() => {
if (closed) close(); if (closed) close();

@ -1,20 +0,0 @@
<script module>
let object = $state();
export function open() {
object = { boolean: true };
}
export function close() {
object = undefined;
}
</script>
<script>
let { children } = $props();
</script>
{#if object?.boolean}
<!-- error occurs here, this is executed when the if should already make it falsy -->
{@render children(object.boolean)}
{/if}

@ -8,6 +8,6 @@ export default test({
flushSync(() => open.click()); flushSync(() => open.click());
flushSync(() => close.click()); flushSync(() => close.click());
assert.deepEqual(logs, [true]); assert.deepEqual(logs, [{ boolean: true, closed: false }]);
} }
}); });

@ -1,6 +1,15 @@
<script> <script>
import A from './A.svelte'; import A from './A.svelte';
import Child, { open } from './Child.svelte';
let object = $state();
function open() {
object = { boolean: true };
}
function close() {
object = undefined;
}
let closed = $state(false); let closed = $state(false);
</script> </script>
@ -15,9 +24,6 @@
<hr> <hr>
<Child> {#if object}
{#snippet children(boolean)} <A {closed} {close} boolean={object.boolean} />
<A {closed} {boolean} /> {/if}
{/snippet}
</Child>

@ -1,9 +1,9 @@
<script> <script>
import B from './B.svelte'; import B from './B.svelte';
let { boolean, closed } = $props(); let { boolean, closed, close } = $props();
</script> </script>
<span>{boolean}</span> <span>{boolean} {closed}</span>
<B {closed} /> <B {closed} {close} />

@ -1,7 +1,5 @@
<script> <script>
import { close } from './Child.svelte'; let { closed, close } = $props();
let { closed } = $props();
$effect.pre(() => { $effect.pre(() => {
if (closed) close(); if (closed) close();

@ -1,20 +0,0 @@
<script module>
let object = $state();
export function open() {
object = { nested: { boolean: true } };
}
export function close() {
object = undefined;
}
</script>
<script>
let { children } = $props();
</script>
{#if object?.nested}
<!-- error occurs here, this is executed when the if should already make it falsy -->
{@render children(object.nested)}
{/if}

@ -1,6 +1,15 @@
<script> <script>
import A from './A.svelte'; import A from './A.svelte';
import Child, { open } from './Child.svelte';
let object = $state();
function open() {
object = { boolean: true };
}
function close() {
object = undefined;
}
let closed = $state(false); let closed = $state(false);
</script> </script>
@ -15,8 +24,6 @@
<hr> <hr>
<Child> {#if object}
{#snippet children(nested)} <A {close} {closed} boolean={object.boolean} />
<A {closed} boolean={nested.boolean} /> {/if}
{/snippet}
</Child>

Loading…
Cancel
Save