«Мокко» предназначен только для общих JS модулей. Вы можете найти его, выполнив поиск файла README в node_modules / mocha.
Если вы хотите использовать esnext , я рекомендую вместо этого использовать "jest". Это не сильно отличается от "мокко".
Пример конфигурации, которая работает для меня:
tsconfig. json
{
"compilerOptions": {
"target": "es6",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve"
},
"exclude": [
"node_modules"
],
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx"
]
}
пакет. json
{
"name": "website",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"test": "jest",
"test-watch": "npm run test -- --watch",
"pretty": "prettier --write \"**/*.js\""
},
"dependencies": {
"@material-ui/core": "^4.9.9",
"@material-ui/icons": "^4.9.1",
"next": "9.3.4",
"react": "16.13.1",
"react-dom": "16.13.1"
},
"devDependencies": {
"@types/jest": "^25.2.1",
"@types/node": "^13.11.0",
"@types/react": "^16.9.32",
"jest": "^25.2.7",
"prettier": "^2.0.2",
"ts-jest": "^25.3.1",
"ts-node": "^8.8.1",
"typescript": "^3.8.3"
}
}
jest.config. json
module.exports = {
roots: ["<rootDir>"],
transform: {
"^.+\\.tsx?$": "ts-jest"
},
testRegex: "(/tests/.*|(\\.|/)(test|spec))\\.tsx?$",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"]
};