Skip to content

Jest

Introduction

This guide will take you through the process of installing Jest, a popular JavaScript testing framework, on an existing Ts.ED project. Jest provides a comprehensive solution for testing JavaScript and TypeScript code, and it integrates seamlessly with Ts.ED. Follow the steps below to incorporate Jest into your project.

Installation

Open your project's terminal where you usually run npm commands. Run the following npm command to install Jest and its required dependencies:

bash
$ npm install --save-dev jest ts-jest @types/jest
bash
$ yarn add -D jest ts-jest @types/jest
bash
$ pnpm add -D jest ts-jest @types/jest
bash
$ bun add -D jest ts-jest @types/jest

This command installs Jest, the TypeScript Jest transformer (ts-jest), and the Jest TypeScript types.

Create Jest Configuration

Create a Jest configuration file named jest.config.ts at the root of your project. Copy and paste the following content into the file:

ts
export default {
  // Automatically clear mock calls and instances between every test
  clearMocks: true,

  // Indicates whether the coverage information should be collected while executing the test
  collectCoverage: true,

  // An array of glob patterns indicating a set of files for which coverage information should be collected
  // collectCoverageFrom: undefined,

  // The directory where Jest should output its coverage files
  coverageDirectory: "coverage",

  // An array of regexp pattern strings used to skip coverage collection
  coveragePathIgnorePatterns: ["index.ts", "/node_modules/"],

  // An array of file extensions your modules use
  moduleFileExtensions: ["js", "json", "jsx", "ts", "tsx", "node"],

  // The test environment that will be used for testing
  testEnvironment: "node",

  // The glob patterns Jest uses to detect test files
  testMatch: ["**/src/**/__tests__/**/*.[jt]s?(x)", "**/src/**/?(*.)+(spec|test).[tj]s?(x)"],
  // A map from regular expressions to paths to transformers
  transform: {
    "\\.(ts)$": "ts-jest"
  }
};

This configuration file specifies Jest settings for TypeScript, including the test file patterns, transformation rules, and other essential configurations.

Update package.json with Test Scripts

Add the following example of test scripts to your package.json file:

json
{
  "scripts": {
    "test": "jest",
    "test:watch": "jest --watch",
    "test:cov": "jest --coverage",
    "test:debug": "node --inspect-brk -r ts-node/register node_modules/.bin/jest --runInBand",
    "test:e2e": "jest --config ./jest.config.e2e.js"
  }
}

These scripts allow you to run various Jest commands, such as running tests, watching for changes, generating coverage reports, debugging tests, and running end-to-end tests with a custom configuration.

Congratulations! You have successfully integrated Jest into your existing Ts.ED project, and you're ready to leverage the provided scripts for efficient testing.

Released under the MIT License.