MCPcopy Create free account
hub / github.com/streamich/react-use / checkOnDepsChanges

Function checkOnDepsChanges

tests/useEvent.test.ts:88–184  ·  view source on GitHub ↗
(
  props1: Props,
  props2: Props,
  addEventListenerName: string,
  removeEventListenerName: string
)

Source from the content-addressed store, hash-verified

86};
87
88const checkOnDepsChanges = (
89 props1: Props,
90 props2: Props,
91 addEventListenerName: string,
92 removeEventListenerName: string
93) => {
94 const { rerender } = renderHook((p: Props) => useEvent(p.name, p.handler, p.target, p.options), {
95 initialProps: props1,
96 });
97 expect(props1.target[addEventListenerName]).toHaveBeenCalledTimes(1);
98 expect(props1.target[addEventListenerName]).toHaveBeenLastCalledWith(
99 props1.name,
100 props1.handler,
101 props1.options
102 );
103
104 // deps are same as previous
105 rerender({
106 name: props1.name,
107 handler: props1.handler,
108 target: props1.target,
109 options: props1.options,
110 });
111 expect(props1.target[removeEventListenerName]).not.toHaveBeenCalled();
112
113 // name is different from previous
114 rerender({
115 name: props2.name,
116 handler: props1.handler,
117 target: props1.target,
118 options: props1.options,
119 });
120 expect(props1.target[removeEventListenerName]).toHaveBeenCalledTimes(1);
121 expect(props1.target[removeEventListenerName]).toHaveBeenLastCalledWith(
122 props1.name,
123 props1.handler,
124 props1.options
125 );
126
127 // handler is different from previous
128 rerender({
129 name: props2.name,
130 handler: props2.handler,
131 target: props1.target,
132 options: props1.options,
133 });
134 expect(props1.target[removeEventListenerName]).toHaveBeenCalledTimes(2);
135 expect(props1.target[removeEventListenerName]).toHaveBeenLastCalledWith(
136 props2.name,
137 props1.handler,
138 props1.options
139 );
140
141 // options contents is same as previous
142 rerender({
143 name: props2.name,
144 handler: props2.handler,
145 target: props1.target,

Callers 1

useEvent.test.tsFile · 0.85

Calls 1

useEventFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…