Estoy escribiendo algunas pruebas unitarias para un código base que usa literales octales. Cada vez que la prueba se ejecuta con npm test , aparece un error de sintaxis de la siguiente manera:
Los literales octales heredados no están permitidos en modo estricto.
Debo enfatizar que "use strict" no aparece en ninguna parte del código fuente, ni puedo identificar ninguna opción en package-lock.json o package.json que indique el modo estricto. Ambos archivos JSON se crearon con npm init -y y no recibieron más modificaciones, excepto la adición de:
"scripts": { "test": "jest" },¿Cómo puedo forzar a Jest a salir del modo estricto para probar el código con literales octales heredados?
Según los documentos :
Por defecto, Jest usará el transformador
babel-jest
Puede decirle explícitamente a Jest que no desea que intente aplicar ninguna transformación configurando la siguiente configuración de Jest (por ejemplo, en jest.config.<ext> o en $.jest en el archivo del paquete):
"transform": {} Vea el ejemplo completo a continuación. Alternativamente, puede dejar las transformaciones de Babel activas pero configurarlas con "sourceType": "script" .
package.json :
{ "name": "strict-jest", "version": "0.1.0", "description": "", "main": "index.js", "scripts": { "test": "jest" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "jest": "^28.1.2" }, "jest": { "transform": {} } } index.test.js :
it("works", () => { expect(0100).toEqual(64); });Producción:
$ npm t > strict-jest@0.1.0 test > jest PASS ./index.test.js ✓ works (2 ms) Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 0.257 s Ran all test suites.