Estoy escribiendo algunas pruebas para mi aplicación de nodo con Jest.
Mis pruebas unitarias se basan en spyOn para simular algunas funciones:
const instrumentsData = require('../../../../dataAccess/instrumentsData'); describe('Test updateInstrument', () => { let getSpyInstruments: jest.SpyInstance; it('Update instrument - success', async () => { getSpyInstruments = jest.spyOn(instrumentsData, 'update'); getSpyInstruments.mockReturnValueOnce({_id: 'testID', ...mockInstrumentParams}); InstrumentsData es un módulo que exporta varias funciones, como update .
Como quiero usar la sintaxis de importación, cambié la importación de la siguiente manera:
import * as instrumentsData from '../../../../dataAccess/instrumentsData'; Con instrumentsData funciona, porque se devuelven múltiples funciones, sin una exportación predeterminada. Si estoy haciendo lo mismo con un archivo con una única exportación predeterminada (como currenciesData , que contiene la exportación predeterminada para findOneCurrency ), desencadena este error:
getSpyCurrencies = jest.spyOn(currenciesData, 'findOneCurrency');Ninguna sobrecarga coincide con esta llamada. Sobrecarga 1 de 4, '(objeto: typeof import("project/src/dataAccess/currenciesData"), método: "predeterminado"): SpyInstance<Promise<LeanDocument<ICurrencyModel & { _id: any; }>>, [id: ...]>', dio el siguiente error. El argumento de tipo '"findOneCurrency"' no se puede asignar al parámetro de tipo '"default"'. Sobrecarga 2 de 4, '(objeto: typeof import("project/src/dataAccess/currenciesData"), método: nunca): SpyInstance<nunca, nunca>', generó el siguiente error. El argumento de tipo 'cadena' no se puede asignar al parámetro de tipo 'nunca'.ts(2769)
¿Cómo puedo arreglar esto?