ms

mitm-servers

Higher level intercepting and mocking library for Node.js HTTP requests in testing

Showing:

Popularity

Downloads/wk

0

GitHub Stars

0

Maintenance

Last Commit

6yrs ago

Contributors

0

Package

Dependencies

1

License

ISC

Type Definitions

Tree-Shakeable

No?

Categories

Express Mocking

Readme

Build Status Coverage Status

mitm-servers

Package for high level HTTP server mocking using mitm and express. It allows making complex mock servers and APIs without actually running live servers in your unit tests. It also simplifies the process by separating the mock servers from the actual tests as oppose to libraries like nock and sinon.

This library will not intercept standard HTTP requests or TCP connections to anything other than the servers you define.

Usage

Eace server you create will have to be attached to a specific address. A basic mock will be:

var mitmServers = require('mitm-servers');
var express = require('express');

var mockApp = express();
mockApp.use(express.static('test_static_google'));

mitmServers.addApp('google.com', mockApp);

Now, whenever you send a request to google.com, you will be routed to the files in the test_static_google folder. For example:

var request = require('supertest');

request('google.com')
  .get('/')
  .expect('<html><body>Fake google</body></html>')
;

Functions

addApp(hostname, app)

Starts intercepting requests to the given host and handling those requests with the given express app.

  • hostname: The target hostname as a string. You can also specific a port with :. For example: localhost:1234
  • app: An app you've created with express or connect. Alternatively, you can use any function that handles an http.IncomingMessage and http.ServerResponse

removeApp(hostname)

Removes interceptions from the given host.

  • hostname: The target hostname as a string

removeAllApps()

Removes interceptions for all the hosts. Convenient for teardown functions.

HTTPS

If you need to mock a host that connections to it are sent with HTTPS you'll need to specifiy the SSL port for it (443). For example:

mitmServers.addApp('google.com:443', mockApp);

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Tutorials

No tutorials found
Add a tutorial