Макет JWT-декодирования в Jest - PullRequest
3 голосов
/ 25 февраля 2020

В целях тестирования мне нужно смоделировать библиотеку jwt-decode. Я использую его следующим образом:

const decodedToken: { exp: number } = jwt_decode(token);

А затем в тестах пробовал следующее и получил ошибки, как показано ниже:

jest.mock('jwt-decode');

TypeError: Невозможно прочитать свойство 'exp' из неопределенного

jest.mock('jwt-decode', () => ({
  exp: 123,
}));

Ошибка типа: (0, _jwtDecode.default) не является функцией

1 Ответ

2 голосов
/ 25 февраля 2020

Проблема со вторым аргументом jest.mock. В вашем примере это функция, которая возвращает объект:

jest.mock('jwt-decode', () => ({ ... }))

, но так как свойство, которое вы пытаетесь смоделировать, является экспортом модуля по умолчанию, аргумент должен быть функцией, которая возвращает функцию который возвращает объект:

jest.mock('jwt-decode', () => () => ({ ... }))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...