Не удалось получить фиктивные метаданные (обновление babel 7) - PullRequest
0 голосов
/ 20 апреля 2019

Я делаю макет подмодуля git (который по сути является просто библиотекой javascript, которую мы используем на работе), и все мои издевательства начали возвращаться:

Failed to get mock metadata

Это произошло после того, как мы обновили проект подмодуля git до babel 7 (из 6). Если я зайду в подмодуль и верну изменения обратно к Babel 6, тесты вернутся к прохождению.

Я макетирую модуль так:

// path is an alias defined in webpack config
import { MyModule } from 'my-module';

jest.mock('my-module');

MyModule.someAttr.mockResolvedValue({data});

Любые идеи, почему обновление до babel 7 приводило к этим ошибкам, все остальное (включая подмодуль) работает нормально, только тесты на нашем пользовательском интерфейсе, который использует подмодуль, не проходят

1 Ответ

0 голосов
/ 20 апреля 2019

Ошибка связана с тем, как Jest разрешает ручные насмешки .Может случиться так, что оператор импорта разрешается Webpack с помощью распознавателя псевдонимов, но функция jest.mock() не учитывает этот преобразователь псевдонимов.Ручные макеты разрешаются в папках __mocks__/ относительно

, потому что ваш фиктивный модуль является частью подмодуля git.Вы можете настроить каталог подмодуля так, чтобы он был помещен в корень вашего проекта в папке __mocks__/, или иметь экспортированный модуль зависимости вашего подмодуля в папке __mocks__/.

.
├── config
├── __mocks__
│   └── mock-module.js
├── submodule
│   ├── __mocks__
│   │   └── mock-submodule.js
│   └── index.js
├── node_modules
└── src
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...