ts-jest (typescript Compiler) [...]. default is not a constructor

Asked

Viewed 64 times

0

i’m trying to use ts-jest in a Vue project to Transform some ". ts" files in "js" so jest can test them. My problem is: typescript Compiler Give me this error: _className.default is not a constructor when trying to mount a Component for testing.

I have two files. In one of them I export a class like this:

class myClass {
  //code
}
export default myClass;

The other file has:

import myClass from "path";

class anotherClass {
  constructor() {
     const foo = new myClass();
  }
}

My .tsconfig file:

{
  "compilerOptions": {
    "target": "ES2019",
    "module": "CommonJS",
    "strict": true,
    "jsx": "preserve",
    "importHelpers": true,
    "moduleResolution": "node",
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "resolveJsonModule": true,
    "baseUrl": ".",
    "types": ["webpack-env"],
    "paths": {
      "@/*": ["src/*"]
    },
    "lib": ["esnext", "dom", "dom.iterable", "scripthost"]
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "tests/**/*.ts",
    "tests/**/*.tsx",
    "src/main.js",
    "src/acl.js"
  ],
  "exclude": ["node_modules"]
}

My jest config file:

module.exports = {
  moduleFileExtensions: ["js", "json", "ts", "vue"],
  transform: {
    ".*\\.(vue)$": "vue-jest",
    ".*\\.(ts)$": "ts-jest",
    ".*\\.(js)$": "babel-jest",
  },
  moduleNameMapper: {
    "^@/(.*)$": "<rootDir>/src/$1",
    "\\.(scss|sass|css)$": "identity-obj-proxy",
  },
  coveragePathIgnorePatterns: [
    "/node_modules/"
  ],
};

I can’t figure out what is happening.

  • Welcome(a) to the stack overflow in English. If you visit the Tour of the platform, you will find that the default language is the PORTUGUÊS. Welcome to the stack overflow in English. If you visit the Tour of the Platform, you will find that the default language is PORTUGUESE.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.