Estoy ejecutando suites de prueba de broma para una aplicación Next.js que usa Redux Toolkit. Estoy usando msw para simular cualquier llamada necesaria a otra API fuera de la aplicación Next que maneja Redux Toolkit.
No me he burlado de TODOS los puntos finales de consulta RTK, solo los que estoy usando actualmente en mis pruebas.
Las pruebas funcionan bien cuando ejecuto sin generación de cobertura a través npm run test .
Sin embargo, cuando ejecuto informes de cobertura a través npm run test -- --coverage , todas las pruebas fallan y todas tienen el mismo error:
- Test suite failed to run No element indexed by 9 at ArraySet_at [as at] (node_modules/source-map-support/node_modules/source-map/lib/array-set.js:109:9) at BasicSourceMapConsumer.SourceMapConsumer_originalPositionFor [as originalPositionFor] (node_modules/source-map-support/node_modules/source-map/lib/source-map-consumer.js:673:30) at mapSourcePosition (node_modules/source-map-support/source-map-support.js:214:42) at wrapCallSite (node_modules/source-map-support/source-map-support.js:358:20) at node_modules/source-map-support/source-map-support.js:399:26 at Array.map (<anonymous>) at Function.prepareStackTrace (node_modules/source-map-support/source-map-support.js:398:30)Descubrí que si configuro los controladores msw en una matriz vacía, el error no aparece. Las pocas pruebas que requieren la API fallan, como se esperaba. Sin embargo, todas las pruebas funcionan bien por lo demás.
No estoy seguro de adónde ir desde aquí. Cualquier consejo es muy apreciado.
Tuve casi el mismo problema, pero el mensaje de error de mi caso era No element indexed by 55 . Estoy usando Jest, y en caso de que en una prueba espero que un objeto no tenga cierta propiedad, tengo este error.
Luego apagué la cobertura de código y el problema desapareció y se pasaron las pruebas. Pero no quería apagarlo por eso.
Finalmente, la única solución para mí fue cambiar el proveedor de cobertura en la configuración de broma a v8 (de manera predeterminada, usa babel).
Parece que este problema tiene que ver con el uso de bromas de babel como proveedor de cobertura de código. Es por eso que cambiar a v8 este problema .
Si no desea usar v8 (esto está marcado como experimental actualmente). Luego deberá instalar babel en su compilación:
npm install --save-dev babel-jest @babel/core @babel/preset-envlo que debería hacer que el error anterior desaparezca.