Awesome
Awesome Jest
An awesome list of Jest packages and resources
Contents
Packages
Matchers
- jest-extended Adds additional matchers to core API making it easy to test everything.
- expect-more A huge library of test matchers for a range of common use-cases.
- jest-axe Jest matcher for axe for testing accessibility.
- jest-enzyme An assertion library for enzyme.
- jest-json-schema JSON schema matcher.
- expect-puppeteer Collection of matchers for Jest & Puppeteer.
- @testing-library/jest-dom Jest matchers to test the state of the DOM.
- jest-generator Jest matcher for testing generator function.
- jest-shell-matchers Test shell scripts while mocking specific commands.
- @emotion/jest Jest matcher for testing Emotion components.
- jest-openapi Jest matchers for asserting that HTTP responses satisfy an OpenAPI spec.
- jest-json Jest matchers to assert on JSON strings.
- @testing-library/jest-native Jest matchers to test the state of React Native.
- @traceloop/jest-opentelemetry Collection of matchers and runner for end to end tests with Jest & OpenTelemetry.
IDE
- vscode-jest Works out of the box Jest based testing in VS Code.
- vscode-jest-runner Simple way to run or debug one or more tests from context menu, codelens or command plalette.
- wallaby The pinnacle of the idea of a test runner integrated into an editor.
- coc-jest Jest plugin for coc.nvim.
- jester A Neovim plugin to easily run and debug Jest tests.
Linting
- eslint-plugin-jest ESLint plugin for Jest.
- eslint-plugin-jest-formatting ESLint plugin that aims to provide formatting rules (auto-fixable where possible) to ensure consistency and readability in jest test suites.
- eslint-plugin-jest-extended ESLint plugin for jest-extended.
- eslint-plugin-jest-dom ESLint plugin to follow best practices and anticipate common mistakes when writing tests with @testing-library/jest-dom.
Runners
- jest-runner-eslint ESLint runner for Jest.
- jest-runner-mocha Mocha runner for Jest.
- jest-runner-prettier Prettier runner for Jest.
- jest-electron-runner Electron runner for Jest.
- jest-runner-stylelint Stylelint runner for Jest.
- jest-runner-groups A runner that lets to group tests and to run groups separately.
- jest-runner-tsc A Jest runner for the TypeScript compiler.
- jest-runner-tsd Runner for running TypeScript type tests.
- jest-light-runner Runner that runs tests directly in bare Node.js, without virtualizing the environment.
Reporters
- jest-silent-reporter A silent reporter for Jest.
- jest-junit A JUnit format reporter for Jest which can integrate with CI systems.
- jest-xunit An xUnit format reporter for Jest.
- jest-skipped-reporter Report skipped tests in Jest.
- jest-html-reporter A Jest test results processor for generating a summary in HTML.
- jest-stare Configurable HTML reporter for filtering, side-by-side snapshot diffs, API, and simple CLI.
- jest-slow-test-reporter Prints the slowest tests in your codebase.
- jest-simple-dot-reporter A simple dot reporter - one dot per each test.
- jest-performance-reporter Identify slow tests and create a report including execution times.
- jest-progress-bar-reporter Simple reporter with a little progressbar.
- jest-html-reporters A Jest test results processor for generating a summary in HTML.
- jest-allure Add more power to your tests using Jest-Allure with very concise representation of what has been tested in a neat web report form.
- jest-standard-reporter Reporter that uses stdout for messages and stderr for errors.
- jest-github-reporter Report jest test errors directly in pull requests.
- jest-email-reporter Reporter for jest test errors by e-mail.
- jest-dashboard Command line dashboard.
- testrail-jest-reporter Report jest test results to TestRail.
- jest-tesults-reporter Submits test results data to Tesults for analysis and reporting.
- github-actions-jest-reporter Reports jest test results using Github Actions groups, allowing for an easy navigation of the test logs.
- jest-ado-reporter Reports jest test suite progress information to the pipeline step in Azure DevOps.
- jest-ci-spec-reporter Zero dependency spec reporter with CI-friendly output.
- jest-angular-test-verifier Ensures that essential Angular files have corresponding test files, reporting any missed opportunities and celebrating when all is well.
- jest-slow-test-highlighter Highlights and reports the slowest tests in your suite, helping you identify areas for performance optimization.
- jest-wip-reporter Classifies all tests as either passing, failing, or work-in-progress; also quiet progress reporting with dots by default.
- @tsdoc-test-reporter/jest A reporter that attaches JS/TSDoc comments to your test results and generates a summary in HTML or JSON.
- testomatio-jest-reporter Allows to analyze Jest autotests, collect test metadata and report them to the testomat.io TCM system.
- jest-console-group-reporter Automatically groups console messages, allows filtering, and provides flexible display configuration options.
- echoed Makes tests observable by reporting OpenTelemetry data.
Results Processors
- majestic Zero config UI for Jest.
Environments
- jest-environment-webdriver custom environment for WebDriver integration.
- jest-environment-puppeteer Puppeteer environment for Jest.
Coverage
- jest-it-up Automatically bump up global thresholds whenever coverage goes above them.
- jest-coverage-thresholds-bumper Similar to
jest-it-up
, but allows to specify where coverage summary is located, supports Jest config in JSON files andpackage.json
. - jest-a-coverage-slip-detector Designed for parallelized CI, prevents test coverage from slipping. Features include per-file ratcheting, automatic coverage merging, and custom messages.
Snapshot
- snapshot-diff Takes two values, and return their difference as a string, ready to be snapshotted with
toMatchSnapshot()
. Especially helpful when testing the difference between different React component states. - jest-snapshots-svg Take a React component tree, and render it into an SVG.
- jest-image-snapshot Take a snapshot test of an image buffer, and catch when the image changes over a threshold. Commonly used for visual regression testing.
- enzyme-to-json Convert Enzyme wrappers to a format compatible with Jest snapshot testing.
- jest-styled-components A set of utilities for testing Styled Components with Jest.
- jest-img-snapshot Image snapshot comparison using pixelmatch with all Jest's snapshot goodies out of the box.
- jest-file-snapshot Write snapshots to a separate file instead of the default snapshot file used by Jest.
- Differencify Visual regression testing tool using Jest and Puppeteer to do Image snapshot comparison.
- StoryShots StoryShots adds automatic Jest Snapshot Testing for Storybook.
- jest-large-snapshot-warning Add warnings to large snapshots.
- jest-serializer-react-helmet Include React Helmet data in component snapshots.
- jest-serializer-json-ld-script Serializes JSON+LD elements as JavaScript objects.
- @emotion/jest Include Emotion styles in component snapshots.
- jest-serializer-xml Format XML documents to better visualize in Snapshots.
- 1log Extensible logger that allows capturing log messages as snapshots.
- jest-serializer-ansi-escapes Snapshot serializer for ANSI escape sequences.
Migration
- jest-codemods Makes it easy to migrate from other test runner and frameworks to Jest.
- @putout/plugin-jest 🐊Putout plugin helps to migrate to latest Jest API.
Library extensions
- testdouble-jest Support for testdouble.js for users of Jest.
- jest-puppe-shots A Jest plugin for creating screenshots of React components with a little help of Puppeteer.
- babel-jest-assertions Babel plugin that automatically adds the number of assertions found in each test with
expect.assertions(n)
andexpect.hasAssertions()
. - typescript-snapshots-plugin Extends the TypeScript dev server to support hovering and jumping to a snapshot.
- jest-chain Chain Jest matchers together to create one powerful assertion.
- jest-expect-message Add custom message to Jest expects.
- @bigtest/interactor A testing and assertion library that makes it easy to test UIs at scale while keeping accessibility at the core.
- @testdeck/jest Decorator based wrapper around Jest for object oriented testing. Checkout the documentation and a working seed for you to start with.
- jest-plugin-must-assert A Jest plugin for strict runtime checks. Fails any tests without assertions and prevents async tasks (Promises & timeouts) from leaking across tests.
- wait-for-expect A await/async function to wait a expect. Useful on e2e test.
- jest-os-detection Dynamically enable or skip tests based on the OS they run on so you can share the same test suite across various platforms.
- @fast-check/jest Bring property based testing (aka fuzzing) into Jest.
- jest-fail-on-console Utility to fail a test when
console.error()
(or any other method of the console) gets called.
Mocks
- jest-fetch-mock Easily mock out
fetch
and set up responses, powered by Jest mock functions. - jest-canvas-mock Mock canvas when run unit test cases with jest.
- jest-localstorage-mock A module to mock window.localStorage and window.sessionStorage in Jest.
- jest-date-mock Mock
window.Date
when run unit test cases with jest. Make tests of Date easier. - jest-mock-extended Create Typesafe mocks for TS interfaces and objects as well as returning argument specific return values.
- jest-wake-lock-mock Mock Screen Wake Lock API
navigator.wakeLock
with ease and run your tests using Jest. - jest-location-mock Mock
window.location
easily. - @automock/jest Class dependencies auto-mocking.
- @jest-mock/express Mock Express.js request and response objects.
Watch plugins
- jest-watch-continue Run test in continue mode.
- jest-watch-directories Select directories to test.
- jest-watch-exec Execute scripts during the watch cycle.
- jest-watch-lerna-packages Select Lerna packages to test.
- jest-watch-master Check changes since master.
- jest-watch-random Randomly run some of the test suites.
- jest-watch-repeat Repeat test runs multiple times.
- jest-watch-select-projects Select which Jest projects to run.
- jest-watch-suspend Suspend watch mode so that your changes would not trigger test runs.
- jest-watch-toggle-config Toggle boolean settings (e.g. verbosity, test coverage).
- jest-watch-typeahead Filter your tests by file name or test name.
- jest-watch-yarn-workspaces Select Yarn workspaces to test.
- node-recorder Toggle recording modes for
node-recorder
.
Processor
- jest-nunjucks Processor that compiles nunjucks templates.
- ts-jest TypeScript preprocessor with sourcemap support.
- vue-jest Vue transformer with source map support.
- marko-jest Processor for Marko component.
- awesome-pug-jest Processor for Pug/Jade.
- jest-raw-loader Processor mimicking
webpack
'sraw-loader
. - jest-less-loader Jest transformer for
.less
file. - jest-url-loader Similar with webpack's
url-loader
for Jest transformer.
Presets
- jest-dynamodb Jest preset for working with DynamoDB.
- jest-mongodb Jest preset for working with MongoDB.
- jest-elasticsearch Jest preset for working with ElasticSearch.
- jest-puppeteer A Jest preset that enables a ready-to-use environment to write integration tests using Puppeteer.
- jest-preset-angular Jest preset for Angular projects.
- jest-preset-gatsby Jest preset to streamline unit testing a Gatsby project.
- jest-search Jest preset for working with customisable version of OpenSearch, ElasticSearch and ZincSearch.
Generators
- jest-test-gen CLI tool to generate a test file with test scaffold for every class method or function exported.
- text2jest A web-based tool to instantly convert a nested list of plain text test names into a Jest file.
Debug
- jest-preview Preview Jest tests in a browser.
Resources
Contribute
Contributions welcome! Read the contribution guidelines.