3.0.3 • Published 1 month ago

emocks v3.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
1 month ago

emocks

emocks is a mocking middleware for express servers.

How does it work?

  • Organize all of your mocks using folder structure, representing your api url
  • You can use HTTP VERBS as file names to create different mocks
  • You can use static .json files for responses or .js modules, that can create dynamic answers

Supported features

  • json, dynamic answers
  • custom headers

Installation

npm install emocks

Example

Assuming we have the following folder structure:
|-- mocks
  |-- users
    |-- GET.json
    |-- :id
      |-- PUT.js
|-- server.js

server.js

const path    = require('path');
const express = require('express');
const emocks  = require('emocks');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.json());
app.use('/', emocks(path.join(__dirname, './mocks')));
app.listen(3000);

mocks/users/GET.json

[ 
  { "id": 1, "name": "Jon Snow", "state": "Knows nothing" },
  { "id": 2, "name": "Arya Stark", "state": "Knows valar morghulis" }
]

mocks/users/GET.headers

{ "X-Password": "The winter is coming" }

mocks/users/PUT.js

module.exports = function(req, res){
  var result = req.body;
  result.id = req.params.id;
  res.json(result);
}

Api calls

GET /users

Response

HTTP/1.1 200 OK
X-Password: The winter is coming
[ 
  { "id": 1, "name": "Jon Snow", "state": "Knows nothing" },
  { "id": 2, "name": "Arya Stark", "state": "Knows valar morghulis" }
]

PUT /users/2

{ "name": "Arya Stark", "state": "Sees nothing" }

Response

{ "id": 2, "name": "Arya Stark", "state": "Sees nothing" }

Options

/**
 * @param {string} path - absolute path to mocks directory
 * @param {object} options
 */
emocks(path.join(__dirname, './path/to/mocks-folder'), {
    //emulate server response delay
    delay: 1000,
    //custom 'Not Found' handler
    404: function(req, res){ ... },
    //global headers, will be applied to every response
    headers: { "X-Custom-Global-Header": "Hello!" },
});

Now supports typescript!

Additional info

Please offer suggestions via issues. emocks is an abbreviation for express mocks. Any similarity to emacs is unintended.

3.0.3

1 month ago

3.0.2

2 months ago

3.0.1

11 months ago

3.0.0

11 months ago

2.0.2

11 months ago

2.0.1

2 years ago

2.0.0

2 years ago

1.1.0

8 years ago

1.0.0

9 years ago

0.3.1

9 years ago

0.3.0

9 years ago

0.2.4

9 years ago

0.2.3

9 years ago

0.2.0

9 years ago

0.1.0

9 years ago

0.0.2

9 years ago