Launch Week Day 3: Introducing Organization Notifications in Socket.Learn More
Socket
Book a DemoSign in
Socket

jest-serializer-html

Package Overview
Dependencies
Maintainers
5
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jest-serializer-html

Jest snapshot serializer that beautifies HTML.

latest
Source
npmnpm
Version
7.1.0
Version published
Weekly downloads
2.1M
-0.33%
Maintainers
5
Weekly downloads
 
Created
Source

A Jest snapshot serializer that beautifies HTML.

NPM version Build Status

When using this Jest serializer, it will turn any string starting with '<' to nicely indented HTML in the snapshot.

This serializer is based on diffable-html which is an opinionated HTML formatter that will ease readability of diffs in case of failing snapshot tests.

Install

Add the package as a dev-dependency:

# With npm
npm install --save-dev jest-serializer-html

# With yarn
yarn add --dev jest-serializer-html

Update package.json to let Jest know about the serializer:

"jest": {
  "snapshotSerializers": ["jest-serializer-html"]
}

Vanilla JS Example

test('should beautify HTML', () => {
  expect('<ul><li><a href="#">My HTML</a></li></ul>').toMatchSnapshot();
});

Will output:

exports[`should beautify HTML 1`] = `
<ul>
  <li>
    <a href="#">
      My HTML
    </a>
  </li>
</ul>
`;

Vue.js component output example

import Vue from 'vue';
const Hello = {
  props: {
    msg: {
      type: String,
      default: 'World'
    }
  },
  template: `
    <h1>Hello ${ msg }!</h1>
    <ul id="main-list" class="list"><li><a href="#">My HTML</a></li></ul>
  `
};

test('should beautify HTML', () => {
  const Component = Vue.extend(Hello);
  const vm = new Component({
    propsData: {
      msg: 'You'
    }
  });

  vm.$mount();

  expect(vm.$el.outerHTML).toMatchSnapshot();
});

Will output:

exports[`should beautify HTML 1`] = `
<h1>
  Hello You!
</h1>
<ul id="main-list"
    class="list"
>
  <li>
    <a href="#">
      My HTML
    </a>
  </li>
</ul>
`;

You can read more about the HTML formatting here.

Special thanks

This package was inspired by the amazing post here: Jest for all: Episode 1 — Vue.js by Cristian Carlesso.

Keywords

jest

FAQs

Package last updated on 13 Jul 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts