simulado
Version:
A simple nodejs mockserver
182 lines (112 loc) • 4.97 kB
Markdown
[](https://heroku.com/deploy)
[](https://github.com/ldabiralai/simulado/tree/v2)
```bash
npm i simulado --save-dev
```
or
```bash
docker run -p <desired_port>:80 ldabiralai/simulado
```
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 <filepath>` - Path to certificate
`-k`, `--key <filepath>` - Path to certificate key
#### Web Client
Once Simulado has started, going to `http://localhost:<SIMULADO_PORT_NUM>` 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 Simulado
- options `<Object>`
- `port` `<number>` - Specify the port number to start Simulado on. Default: `7001`
- `https` `<object>` - Enable https support
- `key` `<string>` - path to key file
- `cert` `<string>` - path to cert file
Sets the url of a simulado instance on which the client should set mocks, for use if simulado lives on another server.
- `url` `<String>` for example `https://my-simulado-server.herokuapp.com`
Returns `true` if simulado is running. Returns `false` if simulado is not started.
Sets a mock response
- `mockResponse` `<MockResponse>` - Add a response to the store. [Full options MockResponse](
Sets multiple mock responses
- `mockResponses` `[<MockResponse>]` - Add responses to the store. [Full options MockResponse](
Clears mocked responses and sets new mocked responses
- `mockResponses` `[<MockResponse>]` - Add responses to the store. [Full options MockResponse](
Fetch the last requests for a path
- `method` `<String>` - The request method for the requests you want to fetch
- `path` `<String>` - The path of the requests you want to fetch
- `limit` `<number>` - Only return the given number of last requests
Fetch the last request for a path
- `method` `<String>` - The request method for the requests you want to fetch
- `path` `<String>` - The path of the requests you want to fetch
Clear mocked response from the store
- `method` `<String>` - The HTTP request method to clear saved response from
- `path` `<String>` - The path to match against when clearing
Clear all mocked responses from the store.
Clear captured request from the store
- `method` `<String>` - The HTTP request method to clear saved request from
- `path` `<String>` - The path to match against when clearing
Clear all captured requests from the store.
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
}
```