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 🙏

© 2025 – Pkg Stats / Ryan Hefner

mocha-nightmare

v0.1.2

Published

mocha client side tests nightmare runner

Readme

mocha-nightmare

alt tag

Caution

This is very early days concept :| You shouldn't expect too much out otf it. Created for a specific purpose which is far more important then the tool itself.

Motivation

Because javascript UI tests should be run in the browser :] This is a different idea of running UI tests: instead of using API that allows you to manipulate the browser like nightwatch, selenium or nightmare it lets you run your tests directly in the browser.

How it works

It's very simple :] mocha-nightmare does the following things:

  • launches nightmare (headless or headfull)
  • sets up mocha test environment
  • opens tested webpage
  • injects you js files to the tested webpage context
  • runs tests
  • returns test results in xunit XML format

Usage

You might want to install it globally

npm i mocha-nightmare -g

prepare json configuration file

{
  "testResources": [
    "<path_to_js_file_you_want_be_injected_to_the_browser>"
  ]
}

run tests

mocha-nightmare -u http://<tested_page_url> -r <json_configuration_file_path>

check output (example printout)

<testsuite name="Mocha Tests" tests="1" failures="0" errors="0" skipped="0" timestamp="Tue, 22 Nov 2016 13:14:01 GMT" time="0.035">
  <testcase classname="example test suite" name="example test" time="0"/>
</testsuite>

cmd options

mocha-nightmare --help

  Usage: index [options]

  Options:

    -h, --help              output usage information
    -u, --url <path>        tested page url
    -w, --warmup <n>        a warmup timeout to be waited before launching tests [ms]
    -l, --lifespan <n>      a lifespan timeout after which test app will be terminated (if tests freeze) [ms]
    -r, --resources <path>  path to configuration json file
    -h, --headfull          displays electron UI
    -e, --endless           do not terminate electron UI afere all tests have been run
    -v, --verbose           print verbose info

Example

go to example/ folder run tests

./run.sh

Tests

TO BE DONE... :

TODO

at least:

  • tests
  • linting
  • mocha & webConsole are a bit out of date

Troubleshooting

DEBUG=* mocha-nightmare -u http://<tested_page_url> -r <json_configuration_file_path> -v

Running in headless environment

this applies to ubunut server 16.04 only

  • install missing libs
sudo apt install libxss1
  • install xvfb
sudo apt install xvfb
  • use xvfb-run to run
xvfb-run mocha-nightmare -u http://<tested_page_url> -r <json_configuration_file_path> -v