chore: add regression test for teardown value behavior (#18751)

#18746 would've introduced a bug that makes this test fail. Add it now
so we don't regress in the future
pull/18151/merge
Simon H 1 day ago committed by GitHub
parent b1142efe96
commit b2c22ab66d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,9 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
test({ assert, target, logs }) {
flushSync(() => target.querySelector('button')?.click());
assert.deepEqual(logs, ['setup: two', 'cleanup: two']);
}
});

@ -0,0 +1,28 @@
<script>
let start = $state(false);
let enabled = $state(false);
let advance = $state(false);
let value = $state('one');
$effect(() => {
if (start) {
value = 'two';
enabled = true;
}
});
$effect(() => {
if (enabled) {
console.log(`setup: ${value}`);
advance = true;
return () => console.log(`cleanup: ${value}`);
}
});
$effect(() => {
if (advance) enabled = false;
});
</script>
<button onclick={() => (start = true)}>start</button>
Loading…
Cancel
Save