yarn create vite@latest app-name --template react-ts
yarn add -D jest
yarn add -D @testing-library/react @testing-library/jest-dom @testing-library/user-event
yarn add -D @babel/preset-react @babel/preset-typescript @babel/preset-env
yarn add -D identity-obj-proxy
jest --init
module.exports = {
presets: [
[
"@babel/preset-env",
{
targets: {
node: "current",
},
},
],
"@babel/preset-react",
"@babel/preset-typescript",
],
};
{
"compilerOptions": {
"target": "ESNext",
"useDefineForClassFields": true,
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": false,
"skipLibCheck": false,
"esModuleInterop": false,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"moduleResolution": "Node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": ["src", "./jest-setup.ts"],
"references": [{ "path": "./tsconfig.node.json" }]
}
export default {
clearMocks: true,
collectCoverage: true,
coverageDirectory: "coverage",
coverageProvider: "v8",
setupFilesAfterEnv: ['<rootDir>/jest-setup.ts'],
testEnvironment: "jsdom",
};
import '@testing-library/jest-dom'