🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

mock-api-server

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mock-api-server

Mock out your API server for testing.

0.4.6
latest
Source
npm
Version published
Maintainers
1
Created
Source

mock-api-server

A flexible and powerful stand-in API server.

This server is meant to be booted quickly (for example, inside a test suite) in a Node.js process.

Booting

From the command-line:

./node_modules/.bin/mock-api-server --port PORT

To boot once for a test:

var MockApi = require('mock-api-server');
var api = new MockApi({"port": 7000});
api.start(function(err) {
  // ... do stuff ...
  api.stop();
})

To connect to an existing server:

var MockApi = require('mock-api-server');
var api = new MockApi({"port": 7000});
api.reset(); // Or whatever you want to do.

See test/server_test.coffee for more detailed examples.

If you are using Mocha, you can also boot the server in a before clause. It's also possible to boot the server once at the beginning of the test suite.

Options

The MockApi supports the following options:

OptionDescription
`port`The IP port on which the mock server listens. Must be specified.
`logToConsole`If `true`, requests will be logged to the console. Default: `false`.
`logToFile`If set to a filename, requests will be logged to the specified file. If `null` or omitted, no file logging is done.

Canned Responses

Canned responses live in your project's test/mock-api directory. This directory and its subdirectories has the same structure as your API. For example, to serve an endpoint /v2/foobizzle, populate the file test/mock-api/GET/v2/foobizzle.json.

Responding to HTTP Methods

Files in the test/mock-api/GET subdirectory are used for GET requests. Files in test/mock-api/PUT subdirectory are used for PUT requests, and so forth.

Responding to Query Parameters

If you have these three files:

test/mock-api/GET/v2/foobizzle.json
test/mock-api/GET/v2/foobizzle.json?type=search
test/mock-api/GET/v2/foobizzle.json?type=search&s=foo

then mock-api-server will serve the third one when type=search and s=foo are provided as query parameters. If only type=search is provided, the second one will be served--mock-api-server will take the most specific matching file.

* can be used to match zero or more characters. For example, the following file:

test/mock-api/GET/v2/foobizzle.json?type=*search*

Will match requests with a query parameter type containing a value "search" or "index,search" or "search,index".

Note that most shells will interpret ?, *, and &, so to create these files, you will have to backslash them. For example:

$ touch test/mock-api/GET/v2/foobizzle.json\?type=\*search\*\&s=foo

Live Responses

You can tell the API server to respond to a particular request like so:

api.respondTo('/foo/bar').with({status: 'OK', headers: {'access-control-allow-origin': '*'}});

This will be active until the next time api.reset() is called.

You can modify an existing response with:

api.respondTo('/foo/bar').byReplacing('foo.bar[1].baz').with([ 76 ]);

FAQs

Package last updated on 26 Mar 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts