Ошибка TS2305: в модуле @types /angular нет экспортированного элемента «cookies»

#javascript #angular #testing #cookies #jestjs

#javascript #angular #тестирование #файлы cookie #jestjs

Вопрос:

У меня возникла проблема с тем, что файлы cookie не определены в области angular.

npm run start сборка и запуск приложения просто отлично, но при попытке запустить npm test эту jest команду executions я получаю эту ошибку:

«Не удалось запустить набор тестов app /components/Component1/Component1.ts: 1:10

  • ошибка TS2305: модуль ‘»../../../../../ node_modules/@types/angular»‘ не имеет экспортированного элемента «cookies».`

Component1.ts в этом импорте: import { cookies } from 'angular';

Сборка и запуск — ок. Тестирование — не в порядке.

Если вы знаете, где может быть скрыта проблема, пожалуйста, помогите 🙂 Спасибо.

мой package.json:

 {
  "dependencies": {
    ...,
    "angular": "^1.8.0",
    "angular-cookies": "1.8.0",
    "babel-polyfill": "^6.2.0",
    ...
  },
  "devDependencies": {
    "@types/angular": "^1.8.0",
    "@types/angular-cookies": "^1.8.0",
    "@types/jest": "^26.0.19",
    "angular-mock": "^1.0.0",
    "angular-mocks": "^1.8.2",
    "angularjs-jest": "^0.1.4",
    "babel-core": "^6.24.1",
    "babel-loader": "^7.0.0",
    "jest": "^26.6.3",
    "ts-jest": "^26.4.4",
    ...
  }
} 

Комментарии:

1. сборки для производства и разработки отличаются от тестовых сборок, ошибки в тестовых сборках никак не повлияют на другие ваши сборки. Ошибка просто говорит, что angular у него нет экспортированного элемента cookies

Ответ №1:

решением моей проблемы было добавление angular-cookies в tsconfig.test.json файл. Я до сих пор не понимаю, почему angular-cookies , поскольку исходный код и производственная сборка берут типы и определения из angular пакета (и через IDE я могу ссылаться на модуль angular, а не на angular-cookies). Но в этом вся жизнь — загадки.

 {
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "types": [
      "node",
      "jest",
      "angular-cookies" --> THIS VERY LINE SOLVED MY ISSUE
    ]
  },
  "include": [
    "index.d.ts",
    "**/*.test.ts"
  ]
}