Build Status license

A boilerplate for a very minimal setup running Jest snapshot tests on Preact components using preact-render-to-string rendering.


The following are the very minimal requirements in order to use the Jest snapshot tests.

  • Jest
    • jest-serializer-html-string plugin dependency
    • extra config added on package.json file
  • Preact
    • preact-render-to-string
  • Babel
    • babel-plugin-transform-react-jsx

Example walkthrough

Component example

A very simple stateless functional component is defined on the ./thing.js file:

module.exports = ({ name, link }) => (
    <a href={ link }>{ name }</a>

Snapshot testing

The boilerplate on how to snapshot-test using Jest is available on ./__tests__/thing.js:

const render = require('preact-render-to-string');
const Thing = require('../thing');

describe('Thing component', () => {
    it('should render with a provided name', () => {
        const tree = render(
            <Thing name="Lorem Ipsum" />


Snapshot of expected rendering are stored on ./__tests__/__snapshots__/thing.js.snap:

// Jest Snapshot v1,

exports[`Thing component should render a thing containing a link 1`] = `<a href="">Lorem Ipsum</a>`;

Running tests

If you need more info about Jest please visit their documentation. In order to run the tests from this example just run:

npm test

Updating snapshots

Keep in mind that when working with snapshots and modifying components, the snapshots needs to be updated in order for tests to pass. To do so just run:

npm test -- -u


MIT © Ruy Adorno

Preact Jest Snapshot Test Boilerplate

:rocket: Test Preact components using Jest snapshots

Preact Jest Snapshot Test Boilerplate Info

⭐ Stars 24
🔗 Source Code
🕒 Last Update 3 years ago
🕒 Created 5 years ago
🐞 Open Issues 0
➗ Star-Issue Ratio Infinity
😎 Author ruyadorno