насмешливый aws -sdk-sns с jest.mock - PullRequest
1 голос
/ 07 февраля 2020

У меня есть следующий код (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 };
  });
});

Теперь, когда я запускаю это, я получаю следующую ошибку

ReferenceError: Cannot access 'testMock' before initialization

Может ли это быть что-то делать с шуткой, поднимая макет или что-то в этом роде?

Далее, если я переместу инсайдера testmock в область действия mock, тогда он будет работать нормально.

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

Однако это лучше цель, так как я не могу проверить звонки или что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...