Тестовый набор не пройден в Jest при использовании Elm - PullRequest
0 голосов
/ 11 сентября 2018

Я создаю одностраничное приложение Typescript.Одна из конечных точек возвращает скомпилированное приложение Elm.

При выполнении тестов jest я получаю следующую ошибку:

yarn run v1.7.0
$ jest
 PASS  server/tests/experience/Albums.spec.ts
 PASS  server/tests/server.spec.ts
 FAIL  client/elm-stuff/packages/elm-lang/virtual-dom/2.0.4/tests/Native/TestHelpers.js
  ● Test suite failed to run

    ReferenceError: Elm is not defined

    > 1 | Elm.Native.TestHelpers = {};
        |                            ^
      2 | Elm.Native.TestHelpers.make = function(localRuntime)
      3 | {
      4 |       localRuntime.Native = localRuntime.Native || {};

      at Object.<anonymous> (client/elm-stuff/packages/elm-lang/virtual-dom/2.0.4/tests/Native/TestHelpers.js:1:28)

Test Suites: 1 failed, 2 passed, 3 total
Tests:       2 passed, 2 total
Snapshots:   1 passed, 1 total
Time:        0.669s, estimated 1s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

В тестах это похоже на Elm is not defined.

Однако у меня есть Elm, определенный в моих зависимостях package.json:

....
  "dependencies": {
    ....
    "elm": "0.18.0",
    .....
  },
 ...

И я могу запустить приложение без проблем.

Единственная ссылка на Elm, которую я имею в настоящем приложении, находится в моем файле индекса HTML.

<!DOCTYPE html>
<html>
  <head>
    <link rel='shortcut icon' type='image/x-icon' href='/favicon.ico' />
    <link rel="stylesheet" href="/main.css">
    <title>Print Albums</title>
  </head>

  <body>
    <div id="elm-app"></div>

    <script src="elm-compiled.js"></script>
    <script>
      const app = Elm.Main.embed(document.getElementById("elm-app"));
      app.ports.grabToken.send(window.location.search);
    </script>
  </body>
</html>

У вас есть идеи, что может пойти не так?Похоже, по какой-то причине шутка входит в мои зависимости от Elm, а не только из моих тестовых файлов?

Приветствия

1 Ответ

0 голосов
/ 11 сентября 2018

Хорошо, еще раз Stack Overflow оказался отличной резиновой уткой.

То, что произошло, это:

  • Я разрабатываю свое приложение Elm в папке клиента.
  • У некоторых зависимостей клиентской папки есть тестовая папка, которая соответствует регулярному выражению jest, которое ищет тесты.

Решением было добавить client в список шаблонов, которые шутит игнорировать.

  testPathIgnorePatterns: [
    "/node_modules/", "/client/"
  ],
...