Обновление jest-preset-angular выдает ошибки об отсутствии файла zone-testing.js

Для ясности, у меня уже есть более старая версия jest-preset-angularработаю с Jest, но у меня есть 3 основные версии, и я бы очень хотел обновить (тем более, что есть некоторые предупреждения безопасности для некоторых базовых пакетов). Поэтому я пытаюсь обновить его до последней версии ( 9.0.1), но у меня много проблем с его работой. Я перепробовал множество конфигураций, и ниже приведены некоторые из последних конфигураций, которые я пробовал.

Для справки, я также создал Толкай запрос здесь на моей библиотеке Open Source , который использует шутя и угловой.

Основная ошибка, которую я имею, заключается в следующем (и поиск в Интернете совершенно не помогает). Ошибка появляется только в тестах, использующих TestBed, waitForAsync и другие ... через import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';

Ошибка в консоли

      zone-testing.js is needed for the fakeAsync() test helper but could not be found.
            Please make sure that your environment includes zone.js/testing

      at resetFakeAsyncZone (../packages/core/testing/src/fake_async.ts:25:9)
      at Object.<anonymous> (../packages/core/testing/src/before_each.ts:26:5)
      at TestScheduler.scheduleTests (node_modules/@jest/core/build/TestScheduler.js:333:13)
      at runJest (node_modules/@jest/core/build/runJest.js:387:19)
      at _run10000 (node_modules/@jest/core/build/cli/index.js:408:7)
      at runCLI (node_modules/@jest/core/build/cli/index.js:261:3)

(ПЕРЕД)

      module.exports = {
  rootDir: '../',
  globals: {
    'ts-jest': {
      tsConfigFile: '<rootDir>/src/tsconfig.spec.json',
    },
    __TRANSFORM_HTML__: true,
  },
  transform: {
    '^.+\\.(ts|html)$': '<rootDir>/node_modules/jest-preset-angular/preprocessor.js',
  },
  ...
};

jest.config.js (ПОСЛЕ)

      module.exports = {
  rootDir: '../',
  globals: {
    'ts-jest': {
      allowSyntheticDefaultImports: true,
      diagnostics: false,
      isolatedModules: true,
      tsconfig: '<rootDir>/tsconfig.spec.json',
      stringifyContentPathRegex: '\\.html$',
      astTransformers: [
        'jest-preset-angular/InlineHtmlStripStylesTransformer'
      ]
    },
  },
  preset: 'jest-preset-angular',
  transform: {
    '^.+\\.(ts|html)$': 'ts-jest',
  },
  ...
};

src/tsconfig.spec.json

      {
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "allowJs": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "outDir": "./out-tsc/spec",
    "module": "commonjs",
    "types": [
      "jest",
      "jest-extended",
      "jquery",
      "node"
    ]
  },
  "files": [
    "src/polyfills.ts"
  ],
  "include": [
    "src/**/*.spec.ts",
    "src/**/*.d.ts"
  ]
}

jest-pretests.ts

      import jQuery from 'jquery';

(global as any).$ = (global as any).jQuery = jQuery;
(window as any).$ = (window as any).jQuery = jQuery;
(global as any).navigator = { userAgent: 'node.js' };
(global as any).Slick = (window as any).Slick = {};
import 'jquery-ui-dist/jquery-ui';
import 'slickgrid/lib/jquery.event.drag-2.3.0';
import 'slickgrid/slick.core';
import 'slickgrid/slick.dataview';
import 'slickgrid/slick.grid';

0 ответов

Другие вопросы по тегам