Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

82
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda