npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

jest-canvas-mock-compare

v0.0.4

Published

Jest matchers for canvas snapshots with a visual diff workflow.

Readme

jest-canvas-mock-compare

A simple development package Jest utility aimed to make it easier to debug HTML canvas visual regression integration tests. This package provides an additional Jest matcher toMatchCanvasSnapshot, and is meant to be paired with the viewer package for debugging the results of the toMatchCanvasSnapshot assertion visually.

License: AGPL-3.0-only

Install

Requires Node.js 20+.

npm install --save-dev jest-canvas-mock-compare

or

yarn add --D jest-canvas-mock-compare

Usage

import { matchers, removeCanvasTransforms } from 'jest-canvas-mock-compare';

expect.extend(matchers);

const width = 400;
const height = 400;
// removeCanvasTransforms(...) prepares canvas events; then:
expect(removeCanvasTransforms(actualEvents)).toMatchCanvasSnapshot(expectedEvents, { width, height });

To make the toMatchCanvasSnapshot jest expect extension available across an entire repo, extend the jest matchers in your global Jest setup file.

Environment variables

GEN_CANVAS_OUTPUT_ON_PASS: will force passed tests to emit payload files

Public exports

  • matchers — pass to expect.extend(matchers) to add toMatchCanvasSnapshot.
  • removeCanvasTransforms — normalize canvas event output before comparison.
  • Types: JestCanvasMockComparePayload, CustomSnapshotMatchers (for TypeScript expect typing).

Payload location and viewer link

On mismatch, the matcher writes JSON under {jest rootDir}/.jest-canvas-mock-compare/. It prints a viewer URL with file and payloadRoot so jest-canvas-mock-compare-viewer can load that directory. The base URL is always http://localhost:5173/.

CI

This library does not output anything when ran in CI (process.env.CI) and behaves exactly like a regular snapshot test. We're currently assuming that runtime environment should not have any impact on test behavior, so any flake in CI should be reproducible in a local environment as well. If you are experiencing CI specific flake and would like better support for debugging failures in CI please open an issue in this repo.

Changelog

See CHANGELOG.md.