added tests regarding handling of values not the set/map

pull/11774/head
godzylinux 2 years ago
parent 1c0b5a1870
commit 2b7abe557a

@ -183,3 +183,31 @@ test('map handling of undefined values', () => {
cleanup(); cleanup();
}); });
test('not invoking reactivity when value is not in the map after changes', () => {
const map = new ReactiveMap([[1, 1]]);
const log: any = [];
const cleanup = effect_root(() => {
render_effect(() => {
log.push(map.get(1));
});
render_effect(() => {
log.push(map.get(2));
});
flushSync(() => {
map.delete(1);
});
flushSync(() => {
map.set(1, 1);
});
});
assert.deepEqual(log, [1, undefined, undefined, 1]);
cleanup();
});

@ -106,3 +106,46 @@ test('set.forEach()', () => {
cleanup(); cleanup();
}); });
test('not invoking reactivity when value is not in the set after changes', () => {
const set = new ReactiveSet([1, 2]);
const log: any = [];
const cleanup = effect_root(() => {
render_effect(() => {
log.push('has 1', set.has(1));
});
render_effect(() => {
log.push('has 2', set.has(2));
});
render_effect(() => {
log.push('has 3', set.has(3));
});
});
flushSync(() => {
set.delete(2);
});
flushSync(() => {
set.add(2);
});
assert.deepEqual(log, [
'has 1',
true,
'has 2',
true,
'has 3',
false,
'has 2',
false,
'has 2',
true
]);
cleanup();
});

Loading…
Cancel
Save