Jest + TS + Vite = RangeError: Invalid string length
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 28/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, react, typescript, vite
- Área
- frontend, testing-qa
Línea de trabajo
Comienza con el test de ejemplo, jest.config.ts y jest.setup.ts, y reproduce el fallo utilizando las versiones indicadas de Jest, jsdom, React Testing Library, Vite, TypeScript y @swc/jest. Compara las ejecuciones con y sin el transform, utilizando el stack trace de pretty-format y DOMElementFilter como evidencia; se considera terminado cuando el test de React se ejecuta sin ninguno de los dos errores indicados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
-
@testing-library/reactversion: 14.0.0 -
Testing Framework and version:
- Jest: 29.6.2
- jest-environment-jsdom: 29.6.2
-
Other relevant dependencies:
- jest_workaround: 0.79.19
- jest-environment-jsdom: 29.6.2
- @swc/core: 1.3.71
- @swc/jest: 0.2.27
- vite: 4.3.2
- typescript: 5.0.2
Relevant code or config:
Example test
import { render, screen } from '@testing-library/react';
import { Element } from './element.test';
describe('renders the form correctly', () => {
it('test to show form', async () => {
render(
<Element />
);
//await waitFor(() => {
expect(screen.getByRole('textbox', { name: 'firstName'})).toBeInTheDocument();
//});
});
});
jest.setup.ts
import '@testing-library/jest-dom';
import '@testing-library/jest-dom/extend-expect';
jest.config.ts
export default {
testEnvironment: 'jsdom',
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
},
moduleDirectories: ['node_modules', 'src'],
transform: {
'^.+\\.(js|jsx|ts|tsx)$': [
'@swc/jest',
{
jsc: {
target: 'es2021',
parser: {
syntax: 'typescript',
tsx: false,
decorators: true,
dynamicImport: true,
},
transform: {
react: {
runtime: 'automatic',
},
},
experimental: {
plugins: [['jest_workaround', {}]], //workaround fixing this problem: https://github.com/swc-project/swc/discussions/7024
},
},
},
],
},
setupFilesAfterEnv: ['./jest.setup.ts'],
};
What you did:
Run my tests normally with the configuration above and it fails.
What happened:
when I run my tests, the error that appears is this one:
RangeError: Invalid string length
at printObjectProperties (node_modules/pretty-format/build/collections.js:174:47)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at node_modules/@testing-library/dom/dist/DOMElementFilter.js:39:79
at Array.map (<anonymous>)
at printChildren (node_modules/@testing-library/dom/dist/DOMElementFilter.js:38:89)
at Object.serialize (node_modules/@testing-library/dom/dist/DOMElementFilter.js:115:75)
at printPlugin (node_modules/pretty-format/build/index.js:330:16)
at printer (node_modules/pretty-format/build/index.js:379:12)
at node_modules/@testing-library/dom/dist/DOMElementFilter.js:39:79
at Array.map (<anonymous>)
at printChildren (node_modules/@testing-library/dom/dist/DOMElementFilter.js:38:89)
at Object.serialize (node_modules/@testing-library/dom/dist/DOMElementFilter.js:115:75)
at printPlugin (node_modules/pretty-format/build/index.js:330:16)
at printer (node_modules/pretty-format/build/index.js:379:12)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at node_modules/@testing-library/dom/dist/DOMElementFilter.js:39:79
at Array.map (<anonymous>)
at printChildren (node_modules/@testing-library/dom/dist/DOMElementFilter.js:38:89)
at Object.serialize (node_modules/@testing-library/dom/dist/DOMElementFilter.js:115:75)
at printPlugin (node_modules/pretty-format/build/index.js:330:16)
at printer (node_modules/pretty-format/build/index.js:379:12)
at node_modules/@testing-library/dom/dist/DOMElementFilter.js:39:79
at Array.map (<anonymous>)
at printChildren (node_modules/@testing-library/dom/dist/DOMElementFilter.js:38:89)
at Object.serialize (node_modules/@testing-library/dom/dist/DOMElementFilter.js:115:75)
at printPlugin (node_modules/pretty-format/build/index.js:330:16)
at printer (node_modules/pretty-format/build/index.js:379:12)
at node_modules/@testing-library/dom/dist/DOMElementFilter.js:39:79
at Array.map (<anonymous>)
at printChildren (node_modules/@testing-library/dom/dist/DOMElementFilter.js:38:89)
at Object.serialize (node_modules/@testing-library/dom/dist/DOMElementFilter.js:115:75)
at printPlugin (node_modules/pretty-format/build/index.js:330:16)
at printer (node_modules/pretty-format/build/index.js:379:12)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at node_modules/@testing-library/dom/dist/DOMElementFilter.js:39:79
at Array.map (<anonymous>)
at printChildren (node_modules/@testing-library/dom/dist/DOMElementFilter.js:38:89)
at Object.serialize (node_modules/@testing-library/dom/dist/DOMElementFilter.js:115:75)
at printPlugin (node_modules/pretty-format/build/index.js:330:16)
at printer (node_modules/pretty-format/build/index.js:379:12)
at node_modules/@testing-library/dom/dist/DOMElementFilter.js:39:79
at Array.map (<anonymous>)
at printChildren (node_modules/@testing-library/dom/dist/DOMElementFilter.js:38:89)
at Object.serialize (node_modules/@testing-library/dom/dist/DOMElementFilter.js:115:75)
at printPlugin (node_modules/pretty-format/build/index.js:330:16)
at printer (node_modules/pretty-format/build/index.js:379:12)
at node_modules/@testing-library/dom/dist/DOMElementFilter.js:39:79
at Array.map (<anonymous>)
at printChildren (node_modules/@testing-library/dom/dist/DOMElementFilter.js:38:89)
at Object.serialize (node_modules/@testing-library/dom/dist/DOMElementFilter.js:115:75)
at printPlugin (node_modules/pretty-format/build/index.js:330:16)
at printer (node_modules/pretty-format/build/index.js:379:12)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
at printComplexValue (node_modules/pretty-format/build/index.js:310:48)
at printer (node_modules/pretty-format/build/index.js:393:10)
at printObjectProperties (node_modules/pretty-format/build/collections.js:173:21)
and if I remove the transform in my .swcrc file get this error:
ReferenceError: React is not defined
Also, I have tried different solutions found on the internet like add this in jest.setup.ts file:
import React from 'react';
global.React = React;
But I get the first error mentioned above.
Problem description:
As I mention Above it occurs when I tried to run a normal test with testing library, the other ones without React code works fine.
- Lenguaje dominante
- JavaScript
- Estrellas
- 19.7k
- Forks
- 1.2k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de testing-library/react-testing-library
-
fireEvent.select does not wrap its automatic native focus in actPosiblemente ocupada @sergioperezcheco la tomó hace 8 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
bug: calling configure() without reactStrictMode resets it to undefined, silently disabling strict modeQuizá libre de nuevo @suhailopensource la tomó hace 78 días y no hay ningún pull request abierto. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
testing-library/react-testing-library#1466 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
testing-library/react-testing-library#1459 · 2 comentarios ·
-
perf: optimize container lookup with early exitQuizá libre de nuevo @Ch-Abhinav-Chowdary la tomó hace 304 días y no hay ningún pull request abierto. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 35/100
testing-library/react-testing-library#1430 · 1 comentario ·
-
`fireEvent.mouseEnter` does not forward `relatedTarget` (relatedTarget is the window instead)Posiblemente ocupada @swarnim02 la tomó hace 321 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
Todos los issues de testing-library/react-testing-library
Issues similares
-
[BUG]: Prompt compressor crashes with TypeError when a past chat has a non-string response.textPosiblemente ocupada @ManojDevarajulu la tomó hoy. Abiertopossible bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Mintplex-Labs/anything-llm#6737 ·
Los mantenedores suelen responder en 1 día
-
Add: Tooncast brazil feedAbiertocheck:passed feeds:add
Dificultad 2/5 Menos de una hora Aptitud para principiantes 62/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
codex-team/editor.js#3037 ·
-
No Code Attached Yet
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
joomla/joomla-cms#48626 ·
Los mantenedores suelen responder en 1 día
-
complexity: trivial good first issue impact: low
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
ueberdosis/tiptap#8522 ·
Los mantenedores suelen responder en 1 día