Description
Describe the feature you'd like:
Testing hooks should support hooks with multiple parameters. Currently, the option "initialProps" of renderHook
, and the "rerender" function it returns are supporting only a single parameter.
Suggested implementation:
Obviously, for backwards compatibility, the option "initialProps" cannot be changed. Therefore, I suggest to add a new option "initialArgs" that is an array and renders the hook to be tested by spreading that array.
The function "rerender" returned from "renderHook" will take multiple parameters and forward them to the hook as well.
import useHook from "..."
const { result, rerender } = renderHook(useHook, { initialArgs: [1, 2, 3] })
rerender(3, 4, 5)
It should be an error (exception) to pass both options "initialProps" and "initialArgs" at the same time.
Describe alternatives you've considered:
As a workaround, I currently wrap my multi-arg hooks in a wrapper hook taking an array as "props", but that is cumbersome:
import useHook from "..."
function useTestHook(args) {
return useHook(...args)
}
const { result, rerender } = renderHook(useTestHook, { initialProps: [1, 2, 3] })
rerender([3, 4, 5])
Activity
[-]renderHook support for multple parameters[/-][+]renderHook support for multiple parameters[/+]amanreddy77 commentedon Oct 14, 2024
hey @danielrentz can I take this up?
danielrentz commentedon Oct 15, 2024
@amanreddy77 Sure! I did not start to prepare something by myself yet.
imevanc commentedon Mar 9, 2025
@danielrentz - is anyone working on this?
danielrentz commentedon Mar 10, 2025
I hoped @amanreddy77 was... Otherwise I will try by myself.
imevanc commentedon Mar 10, 2025
@danielrentz - happy with me to give it a go?
danielrentz commentedon Mar 11, 2025
@imevanc Sorry what do you mean exactly, do you want to start working on this, or do you want me to start? :)
imevanc commentedon Mar 11, 2025
I'd like to start working on this, @danielrentz
danielrentz commentedon Mar 11, 2025
Nice, thanks!