2

I have the following code (t

// mock sns
const testMock = jest.fn().mockImplementation(() => {
  return {
    promise: () => jest.fn()
  };
});

jest.mock('aws-sdk/clients/sns', () => {
  return jest.fn().mockImplementation(() => {
    return { publish: testMock };
  });
});

Now when I run this I get the following error

ReferenceError: Cannot access 'testMock' before initialization

Could it have something to do with jest hoisting the mock or something like that ?

Further to do this, if I move the testmock insider the scope of mock then it works fine.

// this works
jest.mock('aws-sdk/clients/sns', () => {
   const testMock = jest.fn().mockImplementation(() => {
     return {
       promise: () => jest.fn()
     };
   });
  return jest.fn().mockImplementation(() => {
    return { publish: testMock };
  });
});

However this beats the purpose since I cannot check the calls or anything.

pandith padaya
  • 1,643
  • 1
  • 10
  • 20

0 Answers0