Tengo un gancho personalizado que quiero probar. Recibe una función de despacho de tienda redux y devuelve una función. Para obtener el resultado que estoy tratando de hacer:

const { result } = renderHook(() ={amp}gt; { useSaveAuthenticationDataToStorages(useDispatch())}); 

Sin embargo, recibo un error:

Violación invariable: no se pudo encontrar el valor de contexto react-redux; asegúrese de que el componente esté envuelto en un

Sucede debido a useDispatch y que no hay ninguna tienda conectada. Sin embargo, no tengo ningún componente aquí para envolver con un proveedor. Solo necesito probar el enlace que simplemente está guardando datos en una tienda.

¿Cómo puedo arreglarlo?

Los documentos de biblioteca de prueba de ganchos de reacción profundizan en esto. Sin embargo, lo que esencialmente nos falta es el proveedor que podemos obtener creando un contenedor. Primero declaramos un componente que será nuestro proveedor:

 import { Provider } from 'react-redux' const ReduxProvider = ({ children, reduxStore }) ={amp}gt; ( {amp}lt;Provider store={reduxStore}{amp}gt;{children}{amp}lt;/Provider{amp}gt; ) 

entonces en nuestra prueba llamamos

 test("...", () ={amp}gt; { const store = configureStore(); const wrapper = ({ children }) ={amp}gt; ( {amp}lt;ReduxProvider reduxStore={store}{amp}gt;{children}{amp}lt;/ReduxProvider{amp}gt; ); const { result } = renderHook(() ={amp}gt; { useSaveAuthenticationDataToStorages(useDispatch()); }, { wrapper }); // ... Rest of the logic }); 
Jose felix

es un nuevo contribuyente a este sitio. Tenga cuidado al pedir aclaraciones, comentarios y respuestas. Mira nuestro

Código de Conducta

.