Testing with Jest
This guide will help you setup Jest and React Testing Library for your project. Note that this guide only covers shared logic that can be applied to any framework, and it does not cover initial setup of Jest and React Testing Library as it may vary depending on the framework you are using.
Custom render
All Mantine components require MantineProvider to be present in the component tree. To add MantineProvider to the component tree in your tests, create a custom render function:
It is usually more convenient to export all @testing-library/*
functions that you are planning to use
from ./testing-utils/index.ts
file:
Then you should import all testing utilities from ./testing-utils
instead of @testing-library/react
:
Mock WEB APIs
Most of Mantine components depend on browser APIs like window.matchMedia
or ResizeObserver
.
These APIs are not available in jest-environment-jsdom
environment and you will need to mock them in your tests.
Create jest.setup.js
file in your project root and add the following code to it:
Then add it as a setup file in your jest.config.js
:
Framework specific setup
Jest setup for different frameworks may vary and usually change over time. To learn how to setup Jest for your framework, either check Jest and React Testing Library documentation or check one of the premade templates. Most of the templates include Jest setup, and you can use them as a reference.