He intentado probar una función, dentro de esta función hay funciones asíncronas. Me burlé solo de la función getDataExtracontractual(), esta es mi función principal
const obtenerCargaMasiva = async () => { const dataMasiva = await getDataExtracontractual() const dataSort = await sorterData(dataMasiva.Items) return { data: dataSort } }la otra funcion es
const getDataExtracontractual = async () => { const db = DynamoDbDatabase.getInstance(); const singleIndex = DynamoDbDatabase.getTypeIndex(); const params = {} params.TableName = TableNameMatrix params.IndexName = singleIndex.name params.KeyConditionExpression = '#GSIPK = :GSIPK' params.ExpressionAttributeNames = { '#GIR': 'PK', '#GSIPK': 'GSI1PK' } params.ExpressionAttributeValues = { ':GIR': `${RC.Extracontractual}#`, ':GSIPK': RC.Extracontractual } params.FilterExpression = '(begins_with(#GIR, :GIR) )' return db.query(params).promise(); }mi prueba es esta
jest.mock("../../../../src/admin/rc/extracontractual/data-access"); const dataExtracontractual = require('./data/extracontractual.fake.json'); const DataAccess = require("../../../../src/admin/rc/extracontractual/data-access") const Controller = require("../../../../src/admin/rc/extracontractual/controller") describe("Test Service",()=>{ describe("Listar Extracontractual",()=>{ it("Se envian datos validos", async ()=>{ const { response,payload } = dataExtracontractual.service; DataAccess.getDataExtracontractual.mockReturnValueOnce(); const result = await Controller.obtenerCargaMasiva(payload); expect(result).toEqual(response) }) }) })Cuando ejecuto mi prueba. Tengo el siguiente error TypeError: No se puede leer la propiedad 'Elementos' de indefinido Si muestro dataMasiva. volver indefinido.
La solución fue pasar el resultado simulado de getDataExtracontractual a .mockReturnValueOnce() .