Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

75
Vistas
RenderHook envuelve incorrectamente al proveedor de contexto y hace que el contexto no esté definido en la biblioteca de prueba

Tengo una prueba que debería generar un gancho a través de renderHook y también envolverlo en un proveedor de contexto:

 describe("useShowMessages", () => { const amendedMockContext = { ...baseMockContext, // baseMockContext is jut an object I've been using with a value for each item I have in context. conversationData: { data: [{ key: "test" }], }, }; const MockContext = createContext(amendedMockContext); it("should return a full visibility tree on first call", () => { const wrapper = ({ children }: any) => ( // @ts-ignore <MockContext.Provider value={amendedMockContext}> {children} </MockContext.Provider> ); const { result } = renderHook(() => useShowMessages(), { wrapper }); console.log(result.current); }); });

Yo uso el contexto en mi gancho así:

 export const useShowMessages = () => { const { conversationData: { data }, setNeedsInputIndexes, showChat, setCurrentStep, } = useContext(AppContext); // the rest of the hook logic }

Sin embargo, cuando intento ejecutar esta prueba, siempre aparece el mismo error:

 TypeError: Cannot read properties of undefined (reading 'data') 5 | export const useShowMessages = () => { 6 | const { > 7 | conversationData: { data }, | ^ 8 | setNeedsInputIndexes, 9 | showChat, 10 | setCurrentStep,

Puede ver que la prueba está fallando cuando intento extraer valores de contexto usando useContext . No está reconociendo data en absoluto.

Lo configuré siguiendo los ejemplos establecidos en los documentos de la biblioteca de prueba, así como los ejemplos en este artículo . Tengo otras pruebas que usan context y baseMockContext / amendedMockContext , así como otras pruebas de renderHook . todos funcionan bien, pero este es el primero que usa ambos en conjunto y no funciona...

EDITAR:

Aquí está mi AppContext para usar en la aplicación real:

 import { createContext, Dispatch, SetStateAction } from "react"; import { ConversationDataType, FetchResultsType, IntroductionDataType, } from "./types"; export type AppContextType = { // a bunch of types }; export const AppContext = createContext({} as AppContextType);
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda