DEV Community

smeet-kachhadiya
smeet-kachhadiya

Posted on

4

React Testing library setup with vite

First of all make new project using vite & typescript. Use following command yarn create vite


If you face typescript error then change your typescript version to workspace version.

vscode bottom-bar

change-ts-version


Install following dependencies

yarn add -D jest @babel/preset-env @babel/preset-react @babel/preset-typescript @testing-library/react @testing-library/jest-dom @testing-library/user-event jest-svg-transformer identity-obj-proxy jest-environment-jsdom ts-node
Enter fullscreen mode Exit fullscreen mode

jest install jest
@babel/preset-env @babel/preset-react for JSX support in test file
@babel/preset-typescript for ts support in test file
@testing-library/react install testing library
@testing-library/jest-dom custom dom for jest
@testing-library/user-event for adding interactivity in test like click,hover..
jest-svg-transformer identity-obj-proxy so that we can import and use css and image files
jest-environment-jsdom by-default jest uses nodejs environment. To test web app we need jsdom environment.
ts-node so that we can use ts config files


If you face eslint error in test file then comment project: true in .eslintrc.ejs in parserOptions

.eslintrc.ejs


add jest.config.ts file and configure it like mentioned below

jest.config.ts


now just add "test":"jest" in the scripts inside package.json

Top comments (3)

Collapse
 
shyamdadhaniya_89 profile image
Shyam-Dadhaniya

Nice Explanation. This is really helpful.

Collapse
 
indrasisdatta profile image
indrasisdatta

Instead of using jest, can't we use vitest instead? It's easier to configure in viconfig.js or viconfig.test.js.

Collapse
 
smeekas profile image
smeet-kachhadiya

Yes, that is possible. But When I tried to config RTL with vite I came across many difficuties. So when I was able to configure it I thought of sharing it with the fellow developers!

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay