Как поместить функции в глобальные шутки? - PullRequest
0 голосов
/ 18 марта 2020

Я настраиваю jest, и он не находит window.I18n.t (), потому что он определяется звездочками (ruby на рельсах, независимо от веб-пакета). Так что я хотел бы высмеять этот метод. Вот ошибка:

 FAIL  spec/javascript/sanity_test.js
  ● Test suite failed to run

    TypeError: Cannot read property 't' of undefined

      24 |
      25 | export const newOrderPreferenceObject = {
    > 26 |   label: window.I18n.t("some.path.in.localization"), default_value: "",

в упаковке. json Я могу сделать это:

 "jest": {
    "testEnvironment": "jsdom",
    "globals": { 
      "window": {
        "I18n": { "t": {} }
      }
    },

Я также изменяю testEnvironment с jsdom на node.

Однако t () должна быть функцией, а не структурой данных. Так как же поставить функцию в window в шутку?

1 Ответ

0 голосов
/ 18 марта 2020

Я не знаю обстоятельств вашего проекта, но вот как я настраиваю и смоделирую глобальные объекты в своих проектах.

Я создаю setupTests.js в каталоге root src и высмеиваю их там.

setupTests. js

window.I18n = {
  t: jest.fn(),
}

https://create-react-app.dev/docs/running-tests/#srcsetuptestsjs -1

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