Возможность конвертировать json файл в js в Jest

Мы используем приложение create-react-app для создания декларативной структуры. В этой структуре мы создаем файл json, который загружается в компонент реакции с помощью webpack. Для этого мы создали специальный загрузчик. Это хорошо работает в браузере. Но столкнулись с проблемами при модульном тестировании. Приложение Create-react-app использует Jest для модульного тестирования. Что я хочу добиться, так это преобразовать эти json-файлы в js или компонент React, но с соблюдением следующих ограничений

  1. Если я добавлю пользовательское преобразование для json, оно не будет работать из-за ограничений, установленных jest-runtime. После преобразования он ожидает, что на выходе будет только json. См. Код времени выполнения Jest, который ограничивает

  1. Если я переименую расширения файлов в '.vm', он никогда не подберет мой трансформатор, поскольку приложение create-response-app добавляет fileTransformer в следующих случаях. Выделенный преобразователь выбирается для всех других типов, упомянутых в этом регулярном выражении.

Требуется ваше руководство, чтобы решить эту проблему.

1 ответ

Документы Webpack: https://webpack.js.org/loaders/json5-loader/ Конфигурация для преобразования JSON в JS будет выглядеть примерно так. Затем вы можете передать его в Jest, а не пытаться преобразовать его во время выполнения.

module.exports = {
  module: {
    rules: [
      {
        test: /\.json5$/i,
        loader: 'json5-loader',
        type: 'javascript/auto',
      },
    ],
  },
};
Другие вопросы по тегам