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 🙏

© 2026 – Pkg Stats / Ryan Hefner

mo3ta-coverage

v1.0.13

Published

Run tests and report uncovered changed lines in a PR

Readme

mo3ta-coverage NPM Version

mo3ta-coverage checks coverage for changed lines in a pull request. It finds changed source files, maps them to likely test files, runs Jest in a selected execution mode, and validates changed-line coverage against a threshold.

Features

  • Detects changed JS/TS files from all commits in the current branch, uncommitted changes, and staged files
  • Maps changed source files to nearby test files automatically
  • Supports three execution modes: fast, smart, and full
  • Smart mode includes reverse dependency analysis with configurable depth
  • Parses lcov.info and reports uncovered changed lines
  • Enforces a minimum coverage threshold for changed lines
  • Helpful error messages when invalid options are provided

Installation

npm install -g mo3ta-coverage

Usage

mo3ta-coverage --mode smart --base origin/main --limit 80

CLI Options

| Option | Description | Default | |--------|-------------|---------| | -v, --version | Output the current version | - | | --base <branch> | Base branch to compare against | origin/main | | --lcov <path> | Path to lcov.info | coverage/lcov.info | | --limit <percent> | Minimum changed-line coverage percentage | 80 | | --showCovered <bool> | Show covered changed lines in output | false | | --mode <mode> | Execution mode: fast, smart, or full (required) | smart | | --maxDepth <number> | Maximum reverse dependency depth for smart mode | 3 |

Modes

  • fast: Direct execution of mapped test files only. No Jest dependency traversal. Fastest option.
  • smart: Direct execution of changed source files plus mapped test files, with reverse dependency analysis. Includes tests for files that import your changes up to --maxDepth levels. Recommended for most projects.
  • full: Runs mapped test files through jest --findRelatedTests. Let Jest expand to related tests. Use with caution in large projects.

If an invalid mode is provided, the tool will display available options with descriptions.

Recommended Mode

For most projects, especially large ones with shared helpers or deep import graphs, use:

mo3ta-coverage --mode smart --base origin/main --limit 80

Use full only when you intentionally want Jest to expand to related tests.

Configuration

You can persist defaults with the config subcommand:

mo3ta-coverage config --base origin/main --mode smart --maxDepth 3

This writes .mo3ta-coverage.json in the project root.

Changed Files Detection

The tool detects changed files by comparing against the specified base branch:

  • All committed files in the current branch (from merge-base to HEAD)
  • Uncommitted changes in the working tree
  • Staged changes (files added with git add)

This means coverage is checked for all changes in your branch, not just your authored commits.

How It Works

  1. Reads CLI options and saved config from index.js.
  2. Finds changed source files from git in src/cli.js.
  3. Maps source files to nearby test files in src/fileUtils.js.
  4. Runs Jest in the selected mode from src/cli.js.
  5. Parses lcov.info and reports uncovered changed lines.

Development

npm install
npm test

License

MIT