npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jest-stare

v2.5.1

Published

jest html reporter (results processor) to view HTML jest results, save raw JSON, and invoke multiple reporters

Downloads

201,951

Readme

Azure Pipelines Node.js CI Codecov Coverage jest npm version downloads License

Jest HTML Reporter

This is a Jest HTML reporter. It takes summary test results from jest and parses them into an HTML file for improved readability and filtering.

Sample

Features

  • filter on pass / failed tests
  • side-by-side snapshot diff
  • chart-summarized information
  • captures raw jest results JSON file
  • link to generated coverage report (if configured)
  • configuration
  • cli
  • api

Usage

Run tests or a test with jest and specify jest-stare on the --reporters option:

  • jest --reporters default jest-stare
  • jest --testResultsProcessor=jest-stare

Alternatively, in your jest config within package.json set reporters to jest-stare :

  • "reporters": ["default", "jest-stare"]
  • "testResultsProcessor": "./node_modules/jest-stare"

jest-stare when used as a reporter updates the HTML report on each completed test run. You can use this to view test output that is incomplete (before each test suite completes). Refresh your browser to see new tests as each suite completes.

By default, after a report is generated, output will go to ./jest-stare and will contain:

  • index.html - html report
  • jest-results.json - raw jest json data
  • /js - javascript render files
  • /css - css stylings

Config

You can configure custom reporters by passing the jest-stare config as a second argument:

    "reporters": [
      "default",
      [
        "jest-stare",
        {
          "resultDir": "results/jest-stare",
          "reportTitle": "jest-stare!",
          "additionalResultsProcessors": [
            "jest-junit"
          ],
          "coverageLink": "../../coverage/lcov-report/index.html",
          "jestStareConfigJson": "jest-stare.json",
          "jestGlobalConfigJson": "globalStuff.json"
        }
      ]
    ]

Note: testResultsProcessor will not use config options specified in the way above

Or, do so by adding a jest-stare object to your package.json, for example:

jest-stare: {
    ...
}

You can also configure each option via environmental variables instead. Environmental variables take precedence over values in package.json. CLI options take precedence of environmental variables and configuration.

Within the configuration object you can specify the following fields:

Field | Environmental Variable | Default | Description | Example --- | --- | --- | --- | --- resultDir | JEST_STARE_RESULT_DIR | jest-stare | set the results directory | "resultDir": "results/jest-stare" resultJson | JEST_STARE_RESULT_JSON | jest-results.json | indicate the raw JSON results file name | "resultJson": "data.json" resultHtml | JEST_STARE_RESULT_HTML | index.html | indicate the main html file name | "resultHtml": "main.html" log | JEST_STARE_LOG | true | specify whether or not jest-stare should log to the console | "log": false jestStareConfigJson | JEST_STARE_CONFIG_JSON | undefined | request to save jest-stare config raw JSON results in the file name | "jestStareConfigJson": "jest-stare-config.json" jestGlobalConfigJson | JEST_STARE_GLOBAL_CONFIG_JSON | undefined | request to save global config results in the file name | "jestGlobalConfigJson": "global-config.json" report | JEST_STARE_REPORT | undefined | boolean, set to false to suppress creating a HTML report (JSON only retained) | "report": false reportTitle | JEST_STARE_REPORT_TITLE | jest-stare! | string, indicate the title of the report | "reportTitle": "my title" reportHeadline | JEST_STARE_REPORT_HEADLINE | jest-stare | string, indicate the headline of the report | "reportHeadline": "my headline" reportSummary | JEST_STARE_REPORT_SUMMARY | undefined | boolean, shows the report summary | "reportSummary": true additionalResultsProcessors | JEST_STARE_ADDITIONAL_RESULTS_PROCESSORS | undefined | add additional test result processors to produce multiple report |"additionalResultsProcessors": ["jest-junit"] coverageLink | JEST_STARE_COVERAGE_LINK | undefined | link to coverage report if available | "coverageLink": "../../coverage/lcov-report/index.html" disableCharts | JEST_STARE_DISABLE_CHARTS | undefined | hide the doughnut charts in the HTML report | "disableCharts": true hidePassing | JEST_STARE_HIDE_PASSING | undefined | hide passing tests in the report on page load | "hidePassing": true hideFailing | JEST_STARE_HIDE_FAILING | undefined | hide failing tests in the report on page load | "hideFailing": true hidePending | JEST_STARE_HIDE_PENDING | undefined | hide pending tests in the report on page load | "hidePending": true

API

You can programmatically invoke jest-stare and provide jest response data via:

// require jest-stare
const processor = require("jest-stare");

// load some jest results JSON data
const simplePassingTests = require("../__tests__/__resources__/simplePassingTests.json");

// call jest-stare processor, passing a first parm of the jest json results,
// and optionally a second parm of jest-stare config
processor(simplePassingTests, {log: false, resultDir: __dirname + "/output"});

CLI

Use the jest-stare CLI to create or recreate an HTML report. You only need to supply an input JSON file containing the jest test results.

You can invoke jest-stare as a CLI after installing globally via npm install -g jest-stare. Or if jest-stare is a local dependency you can invoke the CLI via npx jest-stare...

Assuming that you have a relative file to your current location in a folder "data" and "simplePassingTests.json" contains saved JSON output from a jest test invocation, you can run the CLI providing a single positional input jest JSON file:

jest-stare data/simplePassingTests.json

Optionally you can control where the report will be stored using a second positional:

jest-stare data/simplePassingTests.json c:/users/myId/desktop/output

The command response takes a form of:

jest-stare was called with programmatic config
**  jest-stare: wrote output report to c:/users/myId/desktop/output/index.html  **

Jest Watch

Because jest-stare writes *.js files when generating a report, you may get an infinite loop when using jest-stare and jest --watch. Samples of the problem are documented here:

  • https://github.com/facebook/jest/issues/3923
  • https://github.com/facebook/jest/issues/2516

To get around this problem, consider excluding jest-stare *.js files from watch via something like this:

    "watchPathIgnorePatterns": [
      ".*jest-stare.*\\.js"
    ],

Contributing

See contributing.

Acknowledgements

Thanks to dogboydog and others for additions!

This project is based on: