Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/2do2go/mocky
http mocking server with simple config written on nodejs
https://github.com/2do2go/mocky
Last synced: 29 days ago
JSON representation
http mocking server with simple config written on nodejs
- Host: GitHub
- URL: https://github.com/2do2go/mocky
- Owner: 2do2go
- Created: 2013-02-25T18:03:24.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2017-01-11T09:24:10.000Z (almost 8 years ago)
- Last Synced: 2024-12-01T07:35:43.324Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 19.5 KB
- Stars: 27
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mocky
mocky - http mocking server with simple config written on nodejs
[![Build Status](https://travis-ci.org/2do2go/mocky.svg?branch=master)](https://travis-ci.org/2do2go/mocky)
## Installation
```
npm install mocky
```## Examples
Create new mock.js file with content
```js
var mocky = require('mocky');mocky.createServer([{
// simple GET route without request body to match
url: '/someurl1?a=b&c=d',
method: 'get',
res: 'response for GET request'
}, {
// POST route with request body to match and respose with status, headers and body
url: '/someurl2?a=b&c=d',
method: 'post',
req: 'POST request body to match',
res: {
status: 202,
headers: {'Content-type': 'text/html'},
body: 'response to return to client'
}
}, {
// PUT route with dynamic response body
url: '/someurl3?a=b&c=d',
method: 'put',
req: 'PUT request body to match',
res: function(req, res) {
return 'PUT response body';
}
}, {
// GET route with regexp url and async response with status, headers and body
url: /\/someurl4\?a=\d+/,
method: 'get',
res: function(req, res, callback) {
setTimeout(function() {
callback(null, {
status: 202,
headers: {'Content-type': 'text/plain'},
body: 'async response body'
});
}, 1000);
}
}]).listen(4321);```
That's all now you can run mock server `node mock.js`, after
that if you send `GET` request to `http://127.0.0.1:4321/someurl1?a=b&c=d` and
get `response for GET request` to the client, send `POST` request to
`http://127.0.0.1:4321/someurl?a=b&c=d` with body `POST request body to match`
... and so on, just try it.## Requests recording
It's very handy to auto record requests, do it somewhere at start of your main
app file```js
mocky.recorder.start({print: true});
```After that all http/https requests will be logged into console immediately after
execution.You also can manually control `recorder` - `start` recorder then after some
requests occures you can manually process recorder `outputs` e.g.```js
console.log(mocky.recorder.outputs)
```You also can `stop` recorder and `clear` outputs.
```js
mocky.recorder.stop();
mocky.recorder.clean();
```## Running test
Into cloned repository run
```
npm test
```## TODO
* improve server logging
* support request headers matching