
Product
Secure Your AI-Generated Code with Socket MCP
Socket MCP brings real-time security checks to AI-generated code, helping developers catch risky dependencies before they enter the codebase.
mock-api-server
Advanced tools
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.
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.
The MockApi
supports the following options:
Option | Description |
---|---|
`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 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
.
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.
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
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
Mock out your API server for testing.
We found that mock-api-server demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Product
Socket MCP brings real-time security checks to AI-generated code, helping developers catch risky dependencies before they enter the codebase.
Security News
As vulnerability data bottlenecks grow, the federal government is formally investigating NIST’s handling of the National Vulnerability Database.
Research
Security News
Socket’s Threat Research Team has uncovered 60 npm packages using post-install scripts to silently exfiltrate hostnames, IP addresses, DNS servers, and user directories to a Discord-controlled endpoint.