Я недавно обновил @angular-builders/jest
с 7 до 8. В руководстве по миграции указано, что мне следует удалить @types/jest
, поскольку теперь он поставляется с Jest v24.(Я также обновил свой tsconfig )
Пока все хорошо.
Но теперь мои тесты не проходят с
error TS2304: Cannot find name 'jest'.
jest.mock('src/app/omitted');
error TS2304: Cannot find name 'jest'.
jest.clearAllMocks();
И VS Code будет иметьничего общего с шуткой глобальной переменной.Какой вид имеет смысл, когда я удаляю typeRoots из моего tsconfig, как я должен, согласно руководству по миграции.
В tsconfig.json (корневой каталог, используемый в IDE):
RemoveМассив typeRoots
Опять же, поскольку Jest-наборы упакованы в jest-пакет и не находятся в node_modules / @ types, вы не хотите, чтобы корни типов были ограничены определенной папкой.
а что дает?В руководстве по миграции сказано, что я должен удалить @types/jest
, но как мне заставить его играть с jest.mock
и jest.clearAllMocks
снова?
Я пытался:
import { mock } from 'jest'; // mock isn't found
import * as jest from 'jest'; // jest.mock isn't found
Пожалуйста, совет.
Вот мои конфиги (такие же как пример простого приложения )
соответствующие пакеты разработчика
{
"@angular-builders/jest": "^8.0.3",
"jest": "^24.8.0",
"jest-preset-angular": "^7.1.1",
"ts-jest": "^24.0.2",
}
tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "esnext",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es2015",
"lib": ["es2018", "dom"],
"strict": true // note strict mode
}
}
tsconfig.spec.json
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"allowJs": true
},
"files": ["src/polyfills.ts"],
"include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
}
angular.json
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"my-project": {
//...
"architect": {
//...
"test": {
"builder": "@angular-builders/jest:run",
"options": {}
}
}
}
}
}