@jpapini/jest-config
Version:
Jest configuration and utilities for JavaScript and TypeScript projects.
62 lines (42 loc) • 1.51 kB
Markdown
# Jest configuration
Jest configuration and utilities for JavaScript and TypeScript projects.
## How to use
1. Install the package and its required peer dependencies:
```bash
pnpm add -D @jpapini/jest-config @swc/core @swc/jest jest @types/jest
```
2. Create a `jest.config.js` file with the following content:
For ESM projects:
```javascript
import { createRequire } from 'node:module';
import url from 'node:url';
import { createJestConfig, pathsToModuleNameMapper } from '@jpapini/jest-config';
const require = createRequire(import.meta.url);
const { compilerOptions } = require('./tsconfig.json');
export default createJestConfig({
rootDir: url.fileURLToPath(new URL('.', import.meta.url)),
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: '<rootDir>/' }),
});
```
or for CJS projects:
```javascript
const path = require('node:path');
const { createJestConfig, pathsToModuleNameMapper } = require('@jpapini/jest-config');
const { compilerOptions } = require('./tsconfig.json');
module.exports = createJestConfig({
rootDir: path.resolve(__dirname),
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: '<rootDir>/' }),
});
```
3. Edit your `package.json` file to include the following:
```json
{
"scripts": {
"test": "jest --color --passWithNoTests",
"test:watch": "pnpm run test --watch",
"test:cov": "pnpm run test --coverage"
}
}
```
## Author
- Julien Papini <julien.papini@gmail.com>