-
Notifications
You must be signed in to change notification settings - Fork 2
/
monitor_delete.spec.ts
41 lines (40 loc) · 1.06 KB
/
monitor_delete.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* eslint-env jest */
import SubX from '../src/index';
import {HandlerEvent} from '../src/types';
describe('monitor delete', () => {
test('default', () => {
const store = SubX.create({
todos: [
{
title: '111',
completed: false,
},
{
title: '222',
completed: false,
},
{
title: '333',
completed: false,
},
],
});
const render = (props: {
todo: {completed: boolean; cache: {}; title: string};
}) => {
const todo = props.todo;
expect(todo.completed).toBeFalsy();
expect(todo.cache).toBeUndefined();
expect(todo.title).toBe('333');
};
const props = {store, todo: store.todos[2]};
const {result, stream$} = SubX.runAndMonitor(SubX.create(props), () =>
render(props)
);
expect(result).toBeUndefined();
const events: HandlerEvent[] = [];
stream$.subscribe(e => events.push(e));
store.todos.splice(2, 1);
expect(events).toEqual([]); // delete parent path won't trigger stale
});
});