Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TypeError: Jest: a transform must export a `process` function

Recently upgrading my app to Angular 11. Jest has been set up as the default testing framework. Running npm test results in the following error:

● Test suite failed to run

    TypeError: Jest: a transform must export a `process` function.

      20 | @Component({
      21 |     selector: 'app-bx-input-textbox',
    > 22 |     template: require('./bx-input-textbox.component.html'),
         |               ^
      23 |     styles: [String(require('./bx-input-textbox.component.scss'))],
      24 |     providers: [
      25 |         {

      at ScriptTransformer._getTransformer (node_modules/@jest/transform/build/ScriptTransformer.js:357:15)
      at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:419:28)
      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:523:40)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
      at src/app/core/components/bx-input-textbox/bx-input-textbox.component.ts:22:15
      at Object.<anonymous> (src/app/core/components/bx-input-textbox/bx-input-textbox.component.ts:38:1)

// jest.config.js

module.exports = {
  testEnvironment: "jsdom",
  transform: {
    ".+\\.(css|styl|less|sass|scss)$": "<rootDir>/node_modules/jest-css-modules-transform",
    "\\.(ts|js)$": ['ts-jest']
  },
  setupFilesAfterEnv: ['./jest.setup.js'],
  globals: {    
    "ts-jest": {
      tsConfig: {
        // allow js in typescript
        allowJs: true,
      },
    },
  },
  // If you need to test a specifc file just include it here
  //testMatch: ['**/repository.jobs.spec.ts'],
  testMatch: []
};

Package versions "@angular-builders/jest": "12.1.0", "@types/jest": "24.9.1", "ts-jest": "26.0.0", "jest": "24.9.0",

I have tried different configurations with the jest.config.js file but not able to resolve this error. Any pointers to resolve this issue would be helpful.

like image 594
user2031428 Avatar asked Jul 13 '21 04:07

user2031428


Video Answer


4 Answers

your ts-jest version must match the jest version.

like image 121
jmounim Avatar answered Oct 23 '22 15:10

jmounim


Upgraded jest and ts-jest to v27 to fix this issue

like image 26
user2031428 Avatar answered Oct 23 '22 15:10

user2031428


Met the same issue with "ts-jest": "^27.0.5" and fixed by revert to "ts-jest": "^26.4.2"

like image 25
Saulo Santiago Avatar answered Oct 23 '22 15:10

Saulo Santiago


You may also need to upgrade jest-cli, along with jest & ts-jest.

like image 41
Mike Aski Avatar answered Oct 23 '22 15:10

Mike Aski