Reputation: 171
I am using jazelle and yarn pnp in monorepo. but I cannot run tests like jz test
. it seems that @types/jest
not setup properly.
My errors:
FAIL __tests__/autocomplete/presto/suggest.test.ts
● Test suite failed to run
__tests__/autocomplete/presto/suggest.test.ts:4:8 - error TS6137: Cannot import type declaration files. Consider importing 'jest' instead of '@types/jest'.
4 import '@types/jest';
~~~~~~~~~~~~~
__tests__/autocomplete/presto/suggest.test.ts:6:1 - error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.
6 describe('Presto SQL Suggest Tests', () => {
~~~~~~~~
__tests__/autocomplete/presto/suggest.test.ts:7:5 - error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.
7 test('Empty suggest', () => {
~~~~
__tests__/autocomplete/presto/suggest.test.ts:10:9 - error TS2304: Cannot find name 'expect'.
10 expect(result.length).toBe(0);
~~~~~~
I did search and tried to fix my following files based on the suggestions searched. but unluckily, I still cannot resolve my errors.
Below are my files:
tsconfig.json
{
"typeAcquisition": {
"include": [
"jest"
]
},
"compilerOptions": {
"types": [
"node",
"@types/jest"
],
"typeRoots": [
"./types",
"./node_modules/@types"
],
"outDir": "target",
"sourceMap": true,
"inlineSources": true,
"noImplicitAny": true,
"strict": true,
"noEmit": true,
"target": "es2015",
"module": "commonjs",
"allowJs": true,
"checkJs": true,
"jsx": "react",
"moduleResolution": "node",
"esModuleInterop": true,
"skipLibCheck": true,
"baseUrl": ".",
"resolveJsonModule": true,
"experimentalDecorators": true
},
"include": [
"src/**/*.*",
"__tests__"
],
"exclude": [
"node_modules",
"**/*.spec.ts",
"**/*.test.ts"
],
}
my jest.config.js
module.exports = {
rootDir: './',
testEnvironment: 'node',
preset: 'ts-jest',
transform: {
"^.+\\.(ts|js)$": require.resolve('ts-jest')
},
moduleFileExtensions: [
"ts",
"tsx",
"js"
],
roots: [
"<rootDir>/__tests__"
],
}
and my devDependencies:
"@types/jest": "28.1.3",
"@types/mocha": "^2.2.42",
"@jest/globals": "25.5.2",
"antlr4ts-cli": "^0.5.0-alpha.4",
"babel-eslint": "10.1.0",
"babel-jest": "28.1.3",
"babel-plugin-parameter-decorator": "1.0.16",
"create-universal-package": "^4.3.0",
"eslint": "7.32.0",
"eslint-config-fusion": "^6.3.0",
"eslint-config-prettier": "2.10.0",
"eslint-plugin-baseui": "10.12.1",
"eslint-plugin-cup": "2.0.3",
"eslint-plugin-flowtype": "4.7.0",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-jest": "23.20.0",
"eslint-plugin-jsx-a11y": "^6.2.1",
"eslint-plugin-prettier": "4.2.1",
"eslint-plugin-react": "^7.27.0",
"eslint-plugin-react-hooks": "^4.6.0",
"flow-bin": "0.131.0",
"flow-coverage-report": "0.7.0",
"jest": "28.1.3",
"jest-environment-jsdom": "28.1.3",
"jest-environment-jsdom-global": "3.1.2",
any idea? thanks
Upvotes: 3
Views: 759
Reputation: 121
we had the same problem and it seems that the correct solution according to yarn is to have the devDependencies duplicated in each subRepository (and therefore jest and @types/jest that are creating your errors)
here is the issue
dependecy version can be inforced via constraints
Upvotes: 0
Reputation: 553
Try to add explicit imports for each function.
import { expect, describe, it, test } from '@jest/globals';
Upvotes: 0