Wk-notes-01-23-test-hook
Bugs from analytic tools
Test React Hooks
it('get same value when using `useMemo` and rerender with same prop in dependencies', () => {
function Child() {
return false;
}
function ComponentUsingMemoHook(props) {
const { count } = props;
const memoized = useMemo(() => ({ result: count * 2 }), [count]);
return (
<Child memoized={memoized} />
);
}
const wrapper = mount(<ComponentUsingMemoHook count={1} />);
const initialValue = wrapper.find(Child).prop('memoized');
wrapper.setProps({ unRelatedProp: '123' });
const nextValue = wrapper.find(Child).prop('memoized');
expect(initialValue).to.equal(nextValue);
});
it('get different value when using `useMemo` and rerender with different prop in dependencies', () => {
function Child() {
return false;
}
function ComponentUsingMemoHook(props) {
const { count, relatedProp } = props;
const memoized = useMemo(() => ({ result: count * 2 }), [count, relatedProp]);
return (
<Child memoized={memoized} relatedProp={relatedProp} />
);
}
const wrapper = mount(<ComponentUsingMemoHook relatedProp="456" count={1} />);
const initialValue = wrapper.find(Child).prop('memoized');
wrapper.setProps({ relatedProp: '123' });
const nextValue = wrapper.find(Child).prop('memoized');
expect(initialValue).to.not.equal(nextValue);
});
});
});A practice from downshiftjs
Last updated