Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

209
Vistas
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
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda