简体   繁体   中英

How to disable "Use Strict" in Jest

I am writing some unit tests for a codebase which uses octal literals. Whenever the test is executed with npm test , a syntax error appears as follows:

Legacy octal literals are not allowed in strict mode.

I should stress that "use strict" does not appear anywhere in the source code, nor can I identify any option in package-lock.json or package.json indicating strict mode. Both JSON files were created with the npm init -y and received no further modification except the addition of:

  "scripts": {
    "test": "jest"
  },

How can I force Jest out of strict mode in order to test code with legacy octal literals?

Per the docs :

By default, Jest will use babel-jest transformer

You can explicitly tell Jest you don't want it to try to apply any transforms by setting the following Jest configuration (eg in jest.config.<ext> or under $.jest in the package file):

"transform": {}

See full example below. Alternatively, you can leave Babel's transforms active but configure it with "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); });
  • Output:

     $ 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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM