Neatly Planned Meal

    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.


    npm i asrtd

    DownloadsWeekly Downloads






    Unpacked Size

    947 kB

    Total Files


    Last publish


    • ehacke