A simple nodejs mockserver
npm install simulado
``bash`
npm i simulado --save-dev
or
`bash`
docker run -p
#### CLI
This will keep the server alive until the process is killed (unlike the below).
`bash`
./node_modules/.bin/simulado
##### Options
-p, --port - Port number that Simulado should start on.
-f, --file - Path to a JSON file containing mocks to mock on startup.
##### For HTTPS, use the following options
-c, --cert - Path to certificate
-k, --key - Path to certificate key
#### Web Client
Once Simulado has started, going to http://localhost: will display a list of mocked endpoints and their responses.
#### Basic Usage (ES6)
`javascript
import simulado from 'simulado';
import axios from 'axios';
(async function() {
// Start Simulado server
await simulado.start();
// Mock a response
await simulado.setMock({
path: '/data',
body: 'Hello World!'
});
// Make a request
const response = await axios.get('http://localhost:7001/data');
console.log(response.data); // => 'Hello World!'
// Stop Simulado server once done
await simulado.stop();
})();
`
#### start([options])
Start Simulado
- options
#### setRemoteServer(url)
Sets the url of a simulado instance on which the client should set mocks, for use if simulado lives on another server.
- url for example https://my-simulado-server.herokuapp.com
#### isRunning()
Returns true if simulado is running. Returns false if simulado is not started.
#### setMock(mockResponse)
Sets a mock response
- mockResponse - Add a response to the store. Full options MockResponse.
#### setMocks(mockResponses)
Sets multiple mock responses
- mockResponses [ - Add responses to the store. Full options MockResponse.
#### setDefaults(mockResponses)
Clears mocked responses and sets new mocked responses
- mockResponses [ - Add responses to the store. Full options MockResponse.
#### lastRequests(method, path[, limit])
Fetch the last requests for a path
- method - The request method for the requests you want to fetchpath
- - The path of the requests you want to fetchlimit
- - Only return the given number of last requests
#### lastRequest(method, path)
Fetch the last request for a path
- method - The request method for the requests you want to fetchpath
- - The path of the requests you want to fetch
#### clearResponse(method, path)
Clear mocked response from the store
- method - The HTTP request method to clear saved response frompath
- - The path to match against when clearing
#### clearResponses()
Clear all mocked responses from the store.
#### clearRequest(method, path)
Clear captured request from the store
- method - The HTTP request method to clear saved request frompath
- - The path to match against when clearing
#### clearRequests()
Clear all captured requests from the store.
#### stop()
Stop Simulado.
`javascript
{
// Path - Mandatory - The HTTP request path that you want the mock to response to.
path: '/testPath', // String path
path: /\/testPath/.*/, // Regex path
method: 'GET', // Optional (defaults to GET if not set) - The HTTP request method that you want the mock to response to.
status: 200, // Optional (defaults to 200 if not set) - The HTTP status you want to mock to response with.
headers: {
'X-Custom-Header': 'Custom Header Value'
}, // Optional - The HTTP headers you want the mock to respond with.
body: {
data: 'DATA'
}, // Optional - The HTTP response body you want the mock to respond with.
conditionalHeaders: {
needMe: 'true'
}, // Optional - The mock with only response if the conditional headers are sent in the request.
conditionalBody: {
data: 'YouNeedThisData'
}, // Optional - The mock will only response if the conditional body is sent in the request.
delay: 5000 // the time (in milliseconds) to wait until responding to a request
}
``