#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"
]
}