Skip to content

keplersj/jest-serializer-react-helmet-async

Repository files navigation

jest-serializer-react-helmet-async

Jest Snapshot serializer to visualize react-helmet-async data alongside component snapshots.

Installation

Install preset using npm:

npm install --save-dev jest-serializer-react-helmet-async

or yarn:

yarn add --dev jest-serializer-react-helmet-async

Usage

Configure Jest to use the serializer in jest.config.js:

module.exports = {
  snapshotSerializers: ["jest-serializer-react-helmet-async"],
};

or package.json:

{
  "jest": {
    "snapshotSerializers": ["jest-serializer-react-helmet-async"]
  }
}

In your tests

Unlike jest-serializer-react-helmet, this serializer does not automatically prepend the serialized data to the snapshots of your React components. You must add an assert for react-helmet-async to be serialized.

Your test should like similar to the following:

import * as React from "react";
import renderer from "react-test-renderer";
import { HelmetProvider } from "react-helmet-async";

describe("App", () => {
  it("renders as expected", () => {
    const context = {};
    const tree = renderer
      .create(
        <HelmetProvider context={context}>
          <App />
        </HelmetProvider>
      )
      .toJSON();

    expect(tree).toMatchSnapshot();
    expect(context.helmet).toMatchSnapshot();
  });
});

Related Packages

License

Copyright 2019 Kepler Sticka-Jones. Licensed ISC