Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including mockserver-node with all npm packages installed. Try it out:

var mockserverNode = require("mockserver-node")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

mockserver-node v5.3.0

Node.js module and Grunt plugin to start and stop MockServer

mockserver-node

Node module and grunt plugin to start and stop MockServer and MockServer proxy

Build status Dependency Status devDependency Status Code Climate

NPM

For chat room: Gitter

Getting Started

This node module can be used to start and stop MockServer and the MockServer proxy as a node module or as a Grunt plugin. More information about the MockServer can be found at mock-server.com.

You may install this plugin / node module with the following command:

npm install mockserver-node --save-dev

Node Module

To start or stop the MockServer from any Node.js code you need to import this module using require('mockserver-node') as follows:

var mockserver = require('mockserver-node');

Then you can use either the start_mockserver or stop_mockserver functions as follows:

mockserver.start_mockserver({
                serverPort: 1080,
                proxyPort: 1090,
                verbose: true
            });

// do something

mockserver.stop_mockserver({
                serverPort: 1080,
                proxyPort: 1090,
                verbose: true
            });

If you are only using the MockServer then only specify the MockServer port as follows:

mockserver.start_mockserver({serverPort: 1080});

// do something

mockserver.stop_mockserver({serverPort: 1080});

The MockServer and the MockServer Proxy use port unification to support HTTP and HTTPS on the same port. A client can then connect to the single port with both HTTP and HTTPS as the socket will automatically detected SSL traffic and decrypt it when required.

Grunt Plugin

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins.

In your project's Gruntfile, add a section named start_mockserver and stop_mockserver to the data object passed into grunt.initConfig().

The following example will result in a both a MockServer and a MockServer Proxy being started on ports 1080 and 1090.

grunt.initConfig({
    start_mockserver: {
        options: {
            serverPort: 1080,
            proxyPort: 1090
        }
    },
    stop_mockserver: {
        options: {
            serverPort: 1080,
            proxyPort: 1090
        }
    }
});

grunt.loadNpmTasks('mockserver-node');

Options

options.serverPort

Type: Integer Default value: undefined

This value specifies the HTTP and HTTPS port for the MockServer port unification is used to support HTTP and HTTPS on the same port. The MockServer will only be started if a port is provided, if this value is left undefined the MockServer will not be started.

options.proxyPort

Type: Integer Default value: undefined

This value specifies the HTTP, HTTPS, SOCKS and HTTP CONNECT port for proxy, port unification is used to support all protocols on the same port. The proxy will only be started if a port is provided, if this value is left undefined the proxy will not be started.

options.artifactoryHost

Type: String Default value: oss.sonatype.org

This value specifies the name of the artifact repository host.

options.artifactoryPath

Type: String Default value: /content/repositories/releases/org/mock-server/mockserver-netty/

This value specifies the path to the artifactory leading to the mockserver-netty jar with dependencies.

options.verbose

Type: Boolean Default value: false

This value indicates whether the MockServer logs should be written to the console. In addition to logging additional output from the grunt task this options also sets the logging level of the MockServer to INFO. At INFO level all interactions with the MockServer including setting up expectations, matching expectations, clearing expectations and verifying requests are written to the log. The MockServer logs are written to mockserver.log in the current directory.

Note: It is also possible to use the --verbose command line switch to enabled verbose level logging from the command line.

options.trace

Type: Boolean Default value: false

This value sets the logging level of the MockServer to TRACE. At TRACE level (in addition to INFO level information) all matcher results, including when specific matchers fail (such as HeaderMatcher) are written to the log. The MockServer logs are written to mockserver.log in the current directory.

options.javaDebugPort

Type: Integer Default value: undefined

This value indicates whether Java debugging should be enabled and if so which port the debugger should listen on. When this options is provided the following additional option is passed to the JVM:

"-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=" + javaDebugPort

Note that suspend=y is used so the MockServer will pause until the debugger is attached. The grunt task will wait 50 seconds for the debugger to be attached before it exits with a failure status.

options.systemProperties

Type: String Default value: undefined

This value allows any system properties to be passed to the JVM that runs MockServer, for example:

start_mockserver: {
    options: {
        serverPort: 1080,
        proxyPort: 1090,
        systemProperties: "-Dmockserver.enableCORSForAllResponses=true"
    }
}

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

DateVersionDescription
2014-28-10v0.0.1Released mockserver-grunt task
2014-28-10v0.0.2Minor tweaks
2014-28-10v0.0.3Yet more minor tweaks with build
2014-29-10v0.0.4Separated out of main MockServer build
2014-29-10v0.0.5Fully integration new drone.io build
2014-29-10v0.0.6Fixing issue with attached jar
2014-29-10v0.0.7Fixing issue missing tasks folder
2014-29-10v0.0.8Added support for use as plain node module
2014-29-10v0.0.9Added missing critical file to module
2014-30-10v1.0.0Fixed final issues with file naming
2014-30-10v1.0.1Improved the documentation
2014-30-10v1.0.2Improved the documentation
2014-01-11v1.0.3Replaced sleep with detection MockServer status
2014-02-11v1.0.4Upgraded MockServer version and build process
2014-03-11v1.0.5Fixed important typo in read me
2014-03-11v1.0.6Fixed missing dependency
2014-05-11v1.0.7Fixed issue #1 with bower & the jar file
2014-20-11v1.0.8Upgrading MockServer & glob versions
2014-20-11v1.0.9Upgrading MockServer to 3.8.1
2014-23-11v1.0.10Upgrading MockServer to 3.8.2
2014-03-12v1.0.11Add additional options and improved promise handling
2014-03-12v1.0.12Improved documentation
2014-04-12v1.0.13Removed dependency on request module
2014-05-12v1.0.14Upgrading MockServer to 3.9.1
2015-04-06v1.0.15Upgrading MockServer to 3.9.3
2015-04-09v1.0.16Upgrading MockServer to 3.9.6
2015-04-09v1.0.17Re-publishing as previous failed
2015-04-10v1.0.18Upgrading MockServer to improve logging
2015-04-10v1.0.19Improved jar download & logging switches
2015-04-14v1.0.20Upgraded MockServer to improve SOCKS proxy
2015-04-14v1.0.21Re-publishing as previous failed
2015-05-01v1.0.23Upgrading MockServer version and improving stop script
2015-05-05v1.0.24Trying to fix missing file caused by npm publish failing
2015-06-02v1.0.25Upgrading MockServer to 3.9.15
2015-06-20v1.0.26Upgrading MockServer to 3.9.16
2015-06-30v1.0.27Upgrading MockServer to 3.9.17
2015-09-27v1.0.28Upgrading MockServer to 3.10.0
2015-09-27v1.0.29Improved the way MockServer is stopped
2015-10-05v1.0.30Upgrading MockServer to 3.10.1
2016-09-27v1.0.31Updated dependencies
2016-09-27v1.0.32Fixed bug #8
2016-10-09v1.0.33Resolved issues with dependencies
2017-04-26v1.0.34Updated MockServer to 3.10.5
2017-04-26v1.0.35Removing jar from module
2017-04-27v1.0.36Updated MockServer to 3.10.6
2017-04-29v1.0.37Updated build badge and flexible artifactory
2017-04-30v1.0.38Added support for generic system properties
2017-05-03v1.0.39Improving promise logic for protractor
2017-05-04v1.0.41Validation of configuration and improved errors
2017-07-12v1.1.0Renamed to mockserver-node
2017-07-12v1.1.1Fixing peer dependencies
2017-07-12v1.1.2Adding shutdown hook for Node to JVM
2017-09-21v2.0.0Upgrading MockServer to 3.11
2017-10-16v2.1.0Upgrading MockServer to 3.12
2017-12-06v5.1.0Upgrading MockServer to 5.1.0
2017-12-07v5.1.1Upgrading MockServer to 5.1.1
2017-12-10v5.2.0Upgrading MockServer to 5.2.0
2017-12-11v5.2.1Upgrading MockServer to 5.2.1
2017-12-12v5.2.2Upgrading MockServer to 5.2.2
2017-12-18v5.2.3Upgrading MockServer to 5.2.3
2017-12-25v5.3.0Upgrading MockServer to 5.3.0

Task submitted by James D Bloom

Analytics

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free