Open
Description
@react-testing-library/react
version (if applicable): 12.1.2@react-testing-library/react-hooks
version: 7.0.2react
version: 15.4.2react-dom
version (if applicable): 15.4.2node
version:npm
(oryarn
) version:
Relevant code or config:
function useFoo(foo: string): string;
function useFoo(foo: number): number;
function useFoo(foo: string | number): string | number {
return foo;
}
test('should allow hook overloading on re-renders', () => {
renderHook(useFoo, { initialProps: 'string' })
});
What you did:
I have a react hook, that relies on overloading to solve different use-cases. Essentially, this hook has an overload that determines the appropriate way to resolve a value based on its parameter typeof
.
What happened:
When faced with an overloadable hook, @react-testing-library/react-hooks
isn't appropriately typing either the initialProps
for the renderHook
method, or the rerender
method itself.
Reproduction:
Problem description:
Hook overloading only works when you explicitly call the hook and return it's value on the renderHook
method, while when using the renderHook
with the initialValue
option, it doesn't properly generate the types to match the overload.