GithubHelp home page GithubHelp logo

muskanmahajan37 / http-mockserver Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sqren/http-mockserver

0.0 0.0 0.0 63 KB

Simplify development and testing by mocking http services with ease.

JavaScript 96.55% Shell 3.45%

http-mockserver's Introduction

Install

$ npm install --save http-mockserver

Usage

const { mockServer } = require('http-mockserver');

// Static mock
mockServer.addMock({
	port: 8080,
	method: 'GET',
	uri: '/my/url',
	response: {
		body: 'Hello world'
	}
});

// Dynamic mock
let counter = 0;
mockServer.addMock({
	port: 8080,
	method: 'GET',
	uri: '/my/other/url',
	handler: function (req, res) {
		counter++;
		res.send(`Counter: ${counter}`);
	}
});

Mock object

To mock an endpoint, the mock object should follow one of these structures:

Static mock

  • port: port of request, eg. 4000
  • uri: uri of request, eg. /users/peter
  • method: method of request, eg. GET
  • response: Response object
    • body, eg. {data: "hello"}
    • statusCode, eg. 404 (default: 200)
    • headers, eg. {"Content-Type": "application/json"}

Dynamic mock

  • port: port of request, eg. 4000
  • uri: uri of request, eg. /users/peter
  • method: method of request, eg. GET
  • handler: function(req, res) {...}

API

The following methods are available on both mockServer and mockClient

addMock(mock)

Mock and endpoint of a port and route, with a specific response (static mock) or a handler function (dynamic mock).

Arguments:

clearAll()

Remove all mocks and clear the request log

create(port)

Returns a mockserver instance with the same API interface, but the methods do not require a port to be specified.

Arguments:

  • port: Port number.

Example:

const { mockServer } = require('http-mockserver');
const backendService = mockServer.create(8888);

backendService.addMock({
	uri: '/some/url/to/mock',
	method: 'GET',
	response: {
		body: 'Hello world!'
	}
});

$ curl localhost:8888/some/url/to/mock 
"Hello world!"

getRequests([port])

Returns request log. If port is specified, request will be filtered by this

Arguments:

  • port: Port number.

waitForRequest(port, predicate, [count = 1, delay = 500])

Returns a list of request logs that the predicate returns truthy for. The predicate is invoked with three arguments: (requestLog, index, requestLogs).

Arguments:

  • port: Port number.
  • predicate: The function invoked per iteration.
  • count: Exact number of request logs to match before returning
  • delay: Time between requests

MockServer API

The following methods are available only available on mockServer

mockServer.start(port)

Start mockserver on the specified port.

Arguments:

  • port: Port of MockServer (default: 3000)

mockServer.stop()

Stop mockserver

MockClient API

The following methods are available only available on mockClient. You only need to use the client if you are communicating with a mockServer that was started from commandline or by a separate Node process with mockServer.start().

mockClient.setServerHost(serverHost)

Set hostname and port of mockserver. This is necessary if you start MockServer on another port than the default (port 3000).

Arguments:

  • serverHost: Host of mockserver (Default: localhost:3000)

MockServer CLI Options

If you need to interact with the mockserver from other languages that Node.js, you can start it as a stand-alone process, and add mocks by interacting with the REST api. To start mockServer from the command-line run http-mockserver. You can also use the CLI tool to start a mockserver with some preconfigured mocks, and load them on startup with http-mockserver --mocks ./mock-folder

$ http-mockserver --help

  Usage: http-mockserver [options]

  Options
    --port     MockServer port, default: 3000
    --mocks    Path to mock config files

http-mockserver's People

Contributors

andrerigon avatar bogdansorlea avatar gogozby avatar sqren avatar tstapleton avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.