Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

210
Views
jest.js / testing-library/react ->testing a react library -> getting 'wrong act()' warning -> probably due to incorrect transpiling

I am trying to test a typescript-react library with jest / @testing-library/react. When I import the lib directly (the compiled js) the tests work but I get a huge warning for each test:

console.error
  Warning: It looks like you're using the wrong act() around your test interactions.
  Be sure to use the matching version of act() corresponding to your renderer:
  
  // for react-dom:
  import {act} from 'react-dom/test-utils';
  // ...
  act(() => ...);
  
  // for react-test-renderer:
  import TestRenderer from react-test-renderer';
  const {act} = TestRenderer;
  // ...
  act(() => ...);

The library has dependencies in node_modules which are not CommonJS which is often a little tricky regarding bundling/transpiling.

So I created a webpack-bundle of the library and all it's dependencies. When I use the webpack-bundle for testing the warnings are gone.

How do I setup babel-jest to reach the same like I did with webpack? Or am I wrong and the error might have another cause?

webpack.config.js:

const path = require('path');
module.exports = {
    mode: 'production',
    optimization: {
        minimize: false
    },
    entry: './lib/index.js',
    output: {
        path: path.resolve(__dirname, 'test'),
        filename: 'webpack-test.js',
        library: {
            name: 'webpackTest',
            type: 'umd',
        },
        globalObject: 'this',
    },
    module: {
        rules: [
            { test: /.ts$/, use: 'ts-loader' },
            {
                test: /.m?js$/,
                loader: 'babel-loader',
                exclude: /node_modules/,
            }
        ],
    },
    externals: {
        react: 'react',
        reactDOM: 'react-dom'
    }
};

jest.config.js

module.exports = {
  transform: {
    "^.+\\.jsx?$": "babel-jest",
    "^.+\\.mjs$": "babel-jest",
    "^.+\\.tsx?$": "ts-jest",
  },
  transformIgnorePatterns: [
    // until solved -> transform all (incl. compl. node_modules)
  ],
  setupFiles: ["jest-canvas-mock"],
  testEnvironment: "jsdom",
};

babel.config.js

module.exports = {
  presets: [
    [
      "@babel/preset-env",
      {
        targets: {
          node: "current",
        },
        modules: "cjs",
      },
    ],
    ["@babel/preset-react", {
      runtime: "automatic"
    }],

    "@babel/preset-typescript",
  ],
};

Any help is highly appreciated.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!