Skip to content

Commit 765b356

Browse files
committed
add test, add to server (noop)
1 parent a1a13d7 commit 765b356

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

packages/svelte/src/compiler/phases/3-transform/server/visitors/CallExpression.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ export function CallExpression(node, context) {
2525
return b.arrow([], b.block([]));
2626
}
2727

28+
if (rune === '$state.invalidate') {
29+
return b.void0;
30+
}
31+
2832
if (rune === '$state.snapshot') {
2933
return b.call(
3034
'$.snapshot',

packages/svelte/tests/signals/test.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@ import {
88
render_effect,
99
user_effect
1010
} from '../../src/internal/client/reactivity/effects';
11-
import { state, set, update, update_pre } from '../../src/internal/client/reactivity/sources';
11+
import {
12+
state,
13+
set,
14+
update,
15+
update_pre,
16+
invalidate
17+
} from '../../src/internal/client/reactivity/sources';
1218
import type { Derived, Effect, Value } from '../../src/internal/client/types';
1319
import { proxy } from '../../src/internal/client/proxy';
1420
import { derived } from '../../src/internal/client/reactivity/deriveds';
@@ -1212,4 +1218,24 @@ describe('signals', () => {
12121218
destroy();
12131219
};
12141220
});
1221+
1222+
test('invalidate reruns dependent effects', () => {
1223+
let updates = 0;
1224+
return () => {
1225+
const a = state(0);
1226+
const destroy = effect_root(() => {
1227+
render_effect(() => {
1228+
$.get(a);
1229+
updates++;
1230+
});
1231+
});
1232+
set(a, 1);
1233+
flushSync();
1234+
assert.equal(updates, 2);
1235+
invalidate(a);
1236+
flushSync();
1237+
assert.equal(updates, 3);
1238+
destroy();
1239+
};
1240+
});
12151241
});

0 commit comments

Comments
 (0)