Para un proyecto que usa Apollo GraphQL, hago referencia a una variable de client para ejecutar una mutación. Esto es para actualizar tokens en un enlace, por lo tanto, no puedo usar ningún gancho de reacción.
Para la prueba, creé un mockClient con los mismos datos que daría en mi MockedProvider ;
const mockClient = createMockClient(data, REFRESH_MUTATION))Para reemplazar el cliente real de Apollo con esto, simplemente uso un requisito que funciona;
require('modules/ApolloProvider').client = createMockClient( data, REFRESH_MUTATION )Observe que el cliente es una exportación con nombre y no una exportación predeterminada. Quiero hacer lo mismo con la funcionalidad simulada de Jest y probé este fragmento al comienzo de mi prueba;
jest.doMock('modules/ApolloProvider', () => { return { client: jest.fn(() => mockClient), } }) Yo también la opción __esModule: true , pero no tuve suerte. ¿Cómo es que la prueba pasa en el primer fragmento, pero no cuando se usa Jest?
Además, lo probé sin el jest.fn() .