@repodog/jest-config

29.0.1 • Public • Published

@repodog/jest-config

The Repodog Jest config.

npm version License: MIT

Install package and peer dependencies

# terminal
npm install @repodog/jest-config @jest/globals jest suppress-experimental-warnings --save-dev

Install optional peer dependencies

# terminal
npm install babel-jest --save-dev
# or
npm install @swc/jest --save-dev

Use package

With Babel

// package.json
{
  "scripts": {
    // esm
    "test": "node --require=suppress-experimental-warnings --experimental-vm-modules node_modules/jest/bin/jest.js",
    // or cjs
    "test": "MODULE_SYSTEM=cjs node node_modules/jest/bin/jest.js"
  }
}
// jest.config.cjs
const jestConfig = require('@repodog/jest-config');

module.exports = {
  ...jestConfig(),
};
// .vscode/launch.json
{
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Jest - current file",
      "program": "${workspaceFolder}/node_modules/jest/bin/jest",
      "args": [
        "${relativeFile}"
      ],
      "env": {
        "DEBUG": "true",
        // esm
        "NODE_OPTIONS": "--experimental-vm-modules",
        // or cjs
        "MODULE_SYSTEM": "cjs"
      },
      "console": "integratedTerminal"
    }
  ]
}

With SWC

// package.json
{
  "scripts": {
    // esm
    "test": "COMPILER=swc node --require=suppress-experimental-warnings --experimental-vm-modules node_modules/jest/bin/jest.js",
    // or cjs
    "test": "COMPILER=swc MODULE_SYSTEM=cjs node node_modules/jest/bin/jest.js"
  }
}
// jest.config.cjs
const jestConfig = require('@repodog/jest-config');
const swcConfig = require('@repodog/swc-config');

module.exports = {
  ...jestConfig({ compilerOptions: swcConfig }),
};
// .vscode/launch.json
{
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Jest - current file",
      "program": "${workspaceFolder}/node_modules/jest/bin/jest",
      "args": [
        "${relativeFile}"
      ],
      "env": {
        "DEBUG": "true",
        "COMPILER": "swc",
        // esm
        "NODE_OPTIONS": "--experimental-vm-modules",
        // or cjs
        "MODULE_SYSTEM": "cjs"
      },
      "console": "integratedTerminal"
    }
  ]
}

Environment variables

COMPILER = 'babel' || 'swc'

Uses either Babel or SWC to compile code for Jest. Default 'babel'.

MODULE_SYSTEM = 'esm' || 'cjs'

Sets the module sytem to either ESModules or commonjs. Default 'esm'.

DEBUG = 'true' || 'false'

Changes testMatch to cover all test files and disables the Jest timeout. These are useful to set when debugging a file in IDE. Default 'false'.

JS_ENV = 'web' || 'node'

When set to 'web', adds regexes to moduleNameMapper and transform to cater for .css and other file extensions Jest cannot resolve. Default 'node'.

Versions

Current Tags

Version History

Package Sidebar

Install

npm i @repodog/jest-config

Weekly Downloads

78

Version

29.0.1

License

MIT

Unpacked Size

8.5 kB

Total Files

7

Last publish

Collaborators

  • dylanaubrey