JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 46
  • Score
    100M100P100Q54275F
  • License ISC

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

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@bednarik_radek/mockserver-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    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 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 everything in the running 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 set -c ./examples/mockserver.config.json ./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 and clear 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.

    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

    npx expectations reset

    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.