Como não podemos usar o hook useAppDispatch() em nosso arquivo de teste, gostaria de saber como posso espionar a instância retornada.
import * as redux from "@/core/context/redux/store";
...
it("test",async ()=>{
await waitFor(() => {
wrapper = render(<MockForgeViewer />);
});
const spyDispatch = vi.spyOn(redux, "useAppDispatch");
wrapper?.unmount();
expect(spyDispatch).toHaveBeenCalledWith();
});
O que acabei de perceber é que esse código está espionando o gancho em si, e não o valor retornado ( dispatch ).
const dispatch = useAppDispatch();
na verdade eu desejo espionar o despacho para afirmar quando um redutor específico foi chamado. Por exemplo:
dispatch(resetStates());
Você deve criar uma
dispatch
função simulada para fazer a afirmação, retornada pelo seuuseAppDispatch
espião.Exemplo: