testing-library / jest-dom

:owl: Custom jest matchers to test the state of the DOM
https://testing-library.com/docs/ecosystem-jest-dom
MIT License
4.4k stars 391 forks source link

Memory leak when importing @testing-library/jest-dom in jest-setup file with NodeJS 20 #588

Open VladimirChuprazov opened 7 months ago

VladimirChuprazov commented 7 months ago

What happened:

Jest fails with a memory leak error when importing @testing-library/jest-dom into jest setup file

Your test suite is leaking memory. Please ensure all references are cleaned.

Reproduction:

Here is the minimal reproduction repository

Problem description:

Jest has a --detectLeaks flag, which causes tests to fail if there is a memory leak. Importing @testing-library/jest-dom causes a memory leak in NodeJS v20. However, in NodeJS v18 the memory leak does not occur.

When commenting out require('aria-query'); var matchers = require('./matchers-5ae87d41.js'); and expect.extend(matchers.extensions); from ./node_modules/@testing-library/jest-dom/dist/index.js memory leak disappears. Both var matchers and require('aria-query') cause a memory leak.

Actually, when running npm run test -- --detectLeaks in the @testing-library/jest-dom repo all tests fail when using NodeJS v20.