Home

Awesome

<p align="center"><img alt="Mockeer" src="images/mockeer.png" width="150"> <br> <strong>Mockeer</strong> <br> Mocking library for Puppeteer! </p> <br>

About

Mockeer is a Puppeteer helper library to run chrome headless browser in isolation.

How it works

Mockeer works by overriding Puppeteer's Request event and providing mock responses.

Mockeer works in Record and Play mode. In record mode it intercepts browser requests and saves them as json fixtures. In play mode it just replay those saved responses.

Installation

$ npm install mockeer

Usage

const mockeer = require('mockeer');
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await mockeer(browser);
  await page.goto('https://www.example.com');
  await page.close();
  await browser.close();
})();

Save above script as index.js

> node index.js
> CI=true node index.js

See more examples here

See full list of configs below

API

See API.md for full list of API calls

GlobalOptions

Parametertyperequireddescriptiondefault
pageobjectnoIf puppeteer page object passed, only mock responses for that page will be recordednull
fixturesDirstringnoPath to generated fixture files./__mockeer_fixture__
fixtureNamestringnoPath to generated fixture namechrome-http-mocks
replaceImagebooleannoReplace images with template imagefalse
replaceIfExistsbooleannoReplace fixtures even when they already recordedtrue
allowImageRecoursesbooleannoIf enabled image resources will be fetched from origin and not intercepted in play modefalse
svgTemplatestringnoA SVG image template that will replace images in the pageA solid gray svg image. Source here

Links

See examples for usages and CI integration with jest

Visit project Slack Chat for general Q/A around project

See CONTRIBUTING.md if you want to contribute.

Gist example with vanilla node