jestjs - jest mock dependency generator function -


i having trouble mocking simple dependency generator function.

//generatorfunction.js export default ()=>({execute: (arg1)=>promise.resolve(arg1)})  //actualfunction.js import generate 'generatorfunction' export default (arg1)=>generate(arg1)  //actualfunction.test.js import actualfunction './actualfunction' import generatorfunction './generatorfunction' const resultinggeneratedfunction = generatorfunction();  jest.mock('generatorfunction', ()=>jest.fn(()=>({execute: ()=>promise.resolve()}))) it('calls generatefunction', function(done){   actualfunction(1).then(()=>{    expect(resultinggeneratedfunction.execute).tohavebeencalledonce()    done()   }) }) 

which errors out execute never called, although when console log inside of actualfunction saw execute called.

the problem jest cant know using promise somewhere in test. have either return promise use async/await. have @ docs

import actualfunction './actualfunction' import generate 'generatorfunction'  jest.mock('generatorfunction', ()=>jest.fn(()=>({execute: ()=>promise.resolve()}))) it('calls generatefunction', function(){   return actualfunction(1).then(()=>{    expect(generatefunction.execute).tohavebeencalledonce()   }) })  import actualfunction './actualfunction' import generate 'generatorfunction'  jest.mock('generatorfunction', ()=>jest.fn(()=>({execute: ()=>promise.resolve()}))) it('calls generatefunction', async function(){   const value = await actualfunction(1)   expect(generatefunction.execute).tohavebeencalledonce() }) 

Comments