Socket
Socket
Sign inDemoInstall

jest-playwright-istanbul

Package Overview
Dependencies
376
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    jest-playwright-istanbul

Collect code coverage information from end-to-end jest chromium tests.


Version published
Weekly downloads
19
increased by58.33%
Maintainers
1
Install size
253 kB
Created
Weekly downloads
 

Readme

Source

jest-playwright-istanbul

This is a fork of ocavue/jest-puppeteer-istanbul, if you are using puppeteer, i would suggest using original library. it has been modified and added a function to manually passing a page to a function and setting the coverage.

Install

yarn add -D jest-playwright-istanbul
// or
npm install -D jest-playwright-istanbul

Configure

[1/4]

Make sure that you have Jest and Babel installed and configured.

[2/4]

Install babel-plugin-istanbul and add it to your Babel config.

You should ONLY use this plugin when you are in development mode. This plugin will add a lot of code for keeping track of the coverage statements. You definitely won't want them in your final production code.

Babel configuration examples:

// .babelrc.js

const plugins = [
    /* Your babel plugins */
]
if (process.env.NODE_ENV === "development") {
    plugins.push("istanbul")
}
module.exports = {
    plugins: plugins,
}
// babel.config.json

{
    plugins: [
        // Your babel plugins
    ],
    env: {
        development: {
            plugins: ["istanbul"],
        },
    },
}

[3/4]

Update your Jest configuration:

  • Add json to coverageReporters. Since the defualt value of coverageReporters has json inclued, you don't need to change coverageReporters if you havn't specify it.
  • Add jest-playwright-istanbul/lib/reporter to reporters.

Set coverage using function as follow:

import { setCoverage } from "jest-playwright-istanbul"

await setCoverage(page)

Alternatively If chromium page available globally do as follow:

Update your Jest configuration:

  • Add jest-playwright-istanbul/lib/setup to setupFilesAfterEnv.

Notice:

If custom reporters are specified, the default Jest reporters will be overridden. To keep default reporters, default can be passed as a module name.

A Jest configuration example:

{
  coverageReporters: ["json", "text", "lcov"],
  setupFilesAfterEnv: ["jest-playwright-istanbul/lib/setup"],
  reporters: ["default", "jest-playwright-istanbul/lib/reporter"],
  collectCoverage: true,
}

If you use jest-chromium, jest-chromium will make page globally available. Otherwise you can set page globally as follow:

beforeAll(async () => {
    const browser = await chromium.launch()
    const page = await browser.newPage()
    global.page = page
})
describe("E2E Tests", () => {
    test(async () => {
        /* Your test code */
    })
})

Keywords

FAQs

Last updated on 27 Jul 2020

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc