@vyriy/jest-config
v0.8.9
Published
Shared Jest config for Vyriy projects
Downloads
6,305
Readme
@vyriy/jest-config
Part of Vyriy - a calm architecture toolkit for TypeScript, React, SSR, SSG, APIs, and cloud-ready apps.
Full documentation: https://vyriy.dev/docs/jest/
Shared Jest config for Vyriy projects.
Purpose
This package provides the base Jest setup used in Vyriy repositories for:
- TypeScript test runs
- SWC transforms
- JSDOM environment
- coverage defaults
- JUnit reporting
Coverage
Coverage is enabled by default and collected from:
[
'<rootDir>/**/*.{ts,tsx,js,jsx,mjs,cjs}',
'!<rootDir>/**/*.d.ts',
'!<rootDir>/**/*.stories.{ts,tsx}',
'!<rootDir>/**/*.types.ts',
'!<rootDir>/**/types.ts',
'!<rootDir>/*.config.ts',
'!<rootDir>/consumer/**',
];Coverage paths ignore generated output, package manager state, Storybook output, and common build folders:
[
'/node_modules/',
'<rootDir>/storybook-static/',
'<rootDir>/dist/',
'<rootDir>/build/',
'<rootDir>/bin/',
'<rootDir>/.bin/',
'<rootDir>/.storybook/',
'<rootDir>/coverage/',
'<rootDir>/.yarn/',
'<rootDir>/consumer/',
];Jest also ignores these generated and dependency directories while resolving modules and discovering tests:
[
'/node_modules/',
'<rootDir>/coverage/',
'<rootDir>/dist/',
'<rootDir>/storybook-static/',
'<rootDir>/consumer/',
];Reports are written to coverage using json, text, text-summary, lcov, clover, and cobertura reporters. The shared default requires 100% global coverage for branches, functions, lines, and statements.
CI Reports
The config includes jest-junit alongside the default Jest reporter. This writes a JUnit report to coverage/junit.xml, which CI systems such as GitLab can publish as a test report artifact.
Jest transformer, reporter, environment, and style proxy packages are resolved from this shared config package, so consumers only need the config package and their local Jest CLI.
The transform ignore rules keep normal dependencies ignored but allow Vyriy packages and the ESM Markdown/unified ecosystem used by SSG and docs packages to pass through SWC.
Install
With npm:
npm install -D @vyriy/jest-config jestWith Yarn:
yarn add -D @vyriy/jest-config jestInstall jest in the consumer project so CLI binaries are available.
Usage
Create jest.config.mjs in your project:
export { default } from '@vyriy/jest-config';If you need local overrides:
import baseConfig, { type Config } from '@vyriy/jest-config';
const config: Config = {
...baseConfig,
coverageThreshold: {
global: {
branches: 80,
functions: 80,
lines: 80,
statements: 80,
},
},
};
export default config;Current Vyriy Usage
In this repository the root Jest config is a thin wrapper:
export { default } from '@vyriy/jest-config';See the article with a complete testing setup walkthrough: https://vyriy.dev/examples/vyriy-jest-config/.
