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 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-snappy

v0.2.6

Published

utility for testing react components against html snapshots

Downloads

19

Readme

react-snappy

utility for testing react components against html snapshots

install

npm i react-snappy -D

check

Compares render output to the snapshot, if not the same prints out a coloured diff and throws an error.

import snappy from 'react-snappy';

snappy.check(<YourComponent/>);

save

Saves the html snapshot in the folder ./snapshots relative to running process current working driectory. You can override this using setFolder. Use when you want to add a new component check. Then rewrite to check. Alternatively you can set envromental variable SNAPPY_SAVE_ALL to force every check into a save globally. Use with caution.

snappy.save(<YourComponent/>);

setFolder

just sets the folder, where snappy will save/look for snapshots. Default value is snapshots and it is always relative to the process's current working directory. This is convenient in ava, where each test file has it's own process.

snappy.setFolder('./mySpecialSnapshotFolder')

jsdom

reinitialize jsdom, html can be any valid html

snappy.jsdom(html)

setColors

set colors for diffs

const chalk = require('chalk')

snappy.setColors({
  added: chalk.red,
  removed: chalk.green
})  // this is the default

jsdom and babel

Enzyme's mount is used for rendering under the hood, so you need to have document and window on global scope-react snappy creates this for you like this:

const doc = jsdom.jsdom('<html><head></head><body></body></html>')
const win = doc.defaultView
global.document = doc
global.window = win

If you ever need something else in your jsdom, feel free to use the method jsdom or just manually rewrite values on global.

If you use ava, best practice is in your package.json:

"ava": {
  "require": [
    "babel-register"
  ],
  "babel": "inherit"
}

so that you have the same babel settings as in your app(.babelrc).