TypeScript icon, indicating that this package has built-in type declarations

1.3.7 • Public • Published


npm CircleCI GitHub

asserted logo command line interface

Test in prod. Continously integration test your app with tests written in Mocha.


Install the command line client and log in.

npm i -g asrtd
asrtd login

Move to your project directory and initialize.

cd my-project
asrtd init

This will create an .asserted/ directory containing the following:

routine.json    ## Routine configuration with interval and mocha config 
package.json    ## NPM package defining the (currently) fixed set of dependencies available during testing 
examples/       ## Directory containing examples, can be modified or removed    

Developing Locally

Create some tests inside .asserted/ (or modify the tests in examples/), then run them using the command below:

asrtd run

asrtd records

By default, test files should be suffixed with .asrtd.js to be picked up by Mocha, but that can be configured in routine.json.

Push to

When you're ready to run them continuously, use:

asrtd push

They'll immediately start running on with the interval that you specified. Go to to configure the notification preferences for test failures to get pinged by email, SMS, or Slack webhook.

Status, Timeline, and Records

To see the current status of the routine associated with the current directory, run:

asrtd status

asrtd records

To get a timeline of the how the status has changed recently, run:

asrtd timeline

asrtd records

To get a list of recent records, run:

asrtd records

asrtd records


At any time you can run asrtd --help to get a list of available commands.

asrtd records


Fixed Dependencies

The dependencies available on the free plan are fixed, but they should cover most major use cases.

For cases where custom dependencies are required, upgrade to a paid plan.

Major libraries

All Available Dependencies

    "ajv": "^6.12.2",
    "async": "^3.2.0",
    "axios": "^0.19.2",
    "bcrypt": "^4.0.1",
    "bluebird": "^3.7.2",
    "chai": "^4.2.0",
    "cookie": "^0.4.1",
    "crypto-js": "^4.0.0",
    "dotenv": "^8.2.0",
    "faker": "^4.1.0",
    "fs-extra": "^9.0.0",
    "getenv": "^1.0.0",
    "got": "^11.1.3",
    "http-status": "^1.4.2",
    "ip": "^1.1.5",
    "jsdom": "^16.2.2",
    "jsonwebtoken": "^8.5.1",
    "lodash": "^4.17.15",
    "luxon": "^1.24.1",
    "mocha": "^7.1.2",
    "moment": "^2.25.3",
    "ms": "^2.1.2",
    "node-fetch": "^2.6.0",
    "qs": "^6.9.4",
    "ramda": "^0.27.0",
    "request": "^2.88.2",
    "request-promise": "^4.2.5",
    "sinon": "^9.0.2",
    "tar": "^6.0.2",
    "underscore": "^1.10.2",
    "uuid": "^8.0.0",
    "validator": "^13.0.0"

Custom Dependencies

For paid plans, custom dependencies are an option. To use custom dependencies, just change the "dependencies" entry in your routine.json to "custom", as shown below.

  "id": "rt-GKgRG",
  "projectId": "p-1HLbs9Z",
  "name": "custom-dep-tests",
  "description": "Tests with Custom Dependencies",
  "interval": {
    "unit": "min",
    "value": 10
  "dependencies": "custom", // The "custom" option is available on paid plans
  "mocha": {
    "files": [
    "ignore": [],
    "bail": false,
    "ui": "bdd"
  "timeoutSec": 10

Once that change is made, any subsequent pushes will include all of the dependencies listed in the "dependencies" entry of your package.json. "devDependencies" and "peerDependencies" are ignored.

A modified version of npm-shrinkwrap is used to capture the exact versions of the dependencies in your current node_modules folder during the push.



Package Sidebar


npm i asrtd

Weekly Downloads






Unpacked Size

947 kB

Total Files


Last publish


  • ehacke