A Jest matcher for performing visual regression testing by comparing image snapshots.
jest-image-snapshot is a Jest matcher that performs visual regression testing by comparing images against stored snapshots. It helps developers catch unintended visual changes in applications by integrating with Jest's snapshot testing workflow. The tool supports both pixel-based and structural similarity (SSIM) comparison methods.
Frontend developers and QA engineers writing automated tests for web applications who need to ensure UI consistency across changes.
Developers choose jest-image-snapshot for its seamless integration with Jest, customizable comparison thresholds, and visual diff output, making it a reliable tool for catching visual regressions in CI/CD pipelines.
✨ Jest matcher for image comparisons. Most commonly used for visual regression testing.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Seamlessly integrates with Jest's snapshot workflow, including automatic baseline creation and update flags like --updateSnapshot, making it familiar for Jest users.
Supports both pixelmatch for pixel-by-pixel checks and SSIM for structural similarity, with customizable thresholds and noise reduction via Gaussian blur.
Generates composite diff images in horizontal or vertical layouts, highlighting changes for easy debugging during test failures.
Includes a blur option to reduce false positives from visual noise like anti-aliasing or resolution differences, improving test reliability.
Only works with Jest, requiring projects to use Jest as their test runner; it cannot be easily adopted in other testing frameworks.
SSIM comparison is computationally intensive and slower than pixelmatch, which can increase test run times, especially for large images or many snapshots.
Image snapshots are not automatically removed when obsolete; you must set up a custom reporter and environment variable, adding complexity.
Relies on third-party DefinitelyTyped definitions that may be outdated, as noted in the README, leading to potential integration issues.