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

@bednarik_radek/mockserver-cli

v0.2.3

Published

CLI utility for Mock-server client. Allows for easy creation/deletion of expectations on the Mock-server instance.

Downloads

10

Readme

mockserver-cli

Utility for handling expectations setup, teardown and other action on MockServer instance.

System Preconditions

  • Node.js - developed and tested on v20.10.0

Installation for usage of the library

  1. run npm i -g @bednarik_radek/mockserver-cli. Global installation is recommended for usage of the library. So it will be accessible from any directory.

  2. run npx expectations -h to see the list of available commands. Will display something like this:

npx expectations -h

# output
Usage: expectations [options] [command]

Options:
  -V, --version                    output the version number
  -c, --config <path>              set config path. defaults to './mockserver.config.json' (default: "./mockserver.config.json")
  --concurrency <number>           set number of concurrent requests. defaults to '10' (default: "10")
  -h, --help                       display help for command

Commands:
  set <paths...>                   send prepared expectations up to the mockserver instance
  clear <paths...>                 clear all expectations from the mockserver instance
  reset                            resets all expectations and request logs in the running mockserver instance
  get-active [options] <paths...>  get all active expectations from the mockserver instance
  help [command]                   display help for command

Installation for development

  1. clone the repository

  2. run npm i to install dependencies

How to Run

Global options

Set config path

npx expectations -c ./examples/mockserver.config.json set ./examples/expectations/expectation1.json

Configuration file format

Example:

{
  "host": "localhost",
  "port": 5999,
  "protocol": "<http|https>"
}

File can be placed anywhere. If -c or --config option is not provided, program will look for mockserver.config.json in the current directory.

Set concurrency

Concurrency of promises sets, how many promises many promises will be held in the queue at max to resolve. Defaults to 10.

This limiting is applied for both set, clear and get-active commands.

  • set is limited for how many expectations requests to mock-server can be sent at once.

  • clear is limited for how many expectations.json files can be processed at once. If the expectations array in the file contains multiple expectations, they will be processed one by one sequentially.

  • get-active is limited for how many requests to mock-server regarding active expectations for the given expectation of the .expectations.json file can be sent at once.

Uses p-queue library under the hood.

npx expectations --concurrency=5 set ./examples/expectations/expectation1.json

Set Expectations

Expectations definitions are stored in json files. These files can be placed anywhere.

Expectation file format

  • file name must end with .expectations.json

  • file must contain array of expectations objects

  • see Mockserver documentation for more details about expectations

Example:

[
  {
    "httpRequest": {
      "method": "GET",
      "path": "/api/test/endpoint/v1"
    },
    "httpResponse": {
      "statusCode": 200,
      "body": "Hello World!"
    }
  },
  {
    "httpRequest": {
      "method": "GET",
      "path": "/api/test/endpoint/v2"
    },
    "httpResponse": {
      "statusCode": 200,
      "body": {
        "message": "Hello World!",
        "flag": "test"
      }
    }
  }
]

Set Expectations from a single file

npx expectations -c=some/filepath/mockserver.config.json --concurrency=50 set ./examples/expectations/expectation1.json

Set Expectations from multiple files

npx expectations set ./examples/expectations/expectation1.json ./examples/expectations/expectation2.json

Set Expectations from a directory

npx expectations set ./examples/expectations

Set Expectations from multiple directories

npx expectations set ./examples/expectations ./examples/expectations2

Clear Expectations

Clear Expectations from a single file

npx expectations clear ./examples/expectations/expectation1.json

Clear Expectations from multiple files


npx expectations clear ./examples/expectations/expectation1.json ./examples/expectations/expectation2.json

Clear Expectations from a directory

npx expectations clear ./examples/expectations

Clear Expectations from multiple directories

npx expectations clear ./examples/expectations ./examples/expectations2

Reset MockServer

Resets all expectations and logs in the running mockserver instance.

npx expectations reset

Get Active Expectations

You have to provide the path(s) to the directory or file containing the expectations.

You may provide option -s or --save to save the active expectations to the .json file.

Otherwise, the expectations are only logged to the console with trace log level.

# retrieves active expectations from the mockserver instance and does NOT save them to the file.
npx expectations -c some/path/to/mockserver.config.json get-active ./examples/expectations/expectation1.json

# retrieves active expectations from the mockserver instance and saves them to the file.
npx expectations -c some/path/to/mockserver.config.json get-active examples/expectations/expectation1.json -s retrieved-active-expectations.json

Logging

Logging is done via pino.js library. Currently, there is only the possibility to log to the console.

Log Levels

Logger settings

These are done via ENV variables.

  • LOG_LEVEL - set log level. Defaults to info if not provided.

  • LOG_ENABLED - set log enabled. Defaults to true if not provided.