1.3.1 • Published 3 years ago

jest-amp v1.3.1

Weekly downloads
339
License
MIT
Repository
github
Last release
3 years ago

jest-amp

npm version

A Jest matcher to validate AMP markup.

This matcher works by wrapping HTML snippets in the minimum valid AMP HTML document and running this through the AMP validator.

Note that this matcher currently requires an active internet connection to be able to access the AMP validator.

Installation

yarn add jest-amp -D

Usage

import { amp, toBeValidAmpHtml } from 'jest-amp';

expect.extend({ toBeValidAmpHtml });

it('is valid AMP HTML', async () => {
  const html = '<div>Hello, World</div>';

  expect(await amp(html)).toBeValidAmpHtml();
});

Configuration

The amp function accepts an options object as the second argument.

script

Inject any required script elements into the document head.

import { amp } from 'jest-amp';

const ampMatcherOptions = {
  scripts: [
    {
      async: true,
      'custom-element': 'amp-list',
      src: 'https://cdn.ampproject.org/v0/amp-list-0.1.js',
    },
  ],
};

it('is valid AMP HTML', async () => {
  const html = '<amp-list src="example.com"></amp-list>';

  expect(await amp(html, ampMatcherOptions)).toBeValidAmpHtml();
});

Note that you can also use the alias scriptTags.

wrap

Don't wrap the markup being tested in a boilerplate AMP document.

import { amp } from 'jest-amp';

it('is valid AMP HTML', async () => {
  const html = '<amp-list src="example.com"></amp-list>';

  expect(await amp(html, { wrap: false })).toBeValidAmpHtml();
});

Examples

Examples of tests written with Enzyme and React Testing Library can be found in the examples directory.