xmock

0.3.0 • Public • Published

xmock

Just a simple way to mock out your API calls, without running a server. Its express-like, fast and hopefully simple to use. I aim to make to 1-to-1 compatible with express 4.x, so that I can play with middleware 😄

Sauce Test Status

Installation

node:

$ npm install xmock

Works with webpack and should work with browserify

 
  // In node.js or your browser (you need to bundle)
 
  var xapp = xmock()
  
  // GET http://localhost/some/value?one=1
  xapp.get('/some/:thing', function(req,res,next) {
 
    req.header // -> { 'Content-Type': 'application/json'}
    req.params // -> { thing: 'value' }
    req.query // -> { one: '1' }
 
    res
    .set('X-Cool-Thing', req.params.thing)
    .status(201)
 
    next()
  })
 
  // Keep the middleware going!
  xapp.use(function(req,res,next) {
    // Same request above
    res.send({some: 'json'})
  })
 
  // And when you want to remove all your middleware
 
  xapp.reset() // still listenening, but without any middleware
 

Supports the usual http methods ...

  • .get
  • .post
  • .put
  • .delete
  • .patch

Restoring normal http requests

  • .restore() -> will allow normal requests to go through, but will leave your middleware intact

  • .install() -> same as xmock(), it'll capture the http requests

  • .reset() -> removes the middleware (under the hood it just resets the callback array)

Path matching

Uses express-like paths, or regexp or full path

  xapp.get('/some/:thing/optional?', function(){})
  xapp.get(/some(.*)/, function(){}) // regexp with groups
  xapp.get('http://www.google.com', function(){}) // full paths

Middleware

Such an awesome concept, is middleware!

  // So, things like arguments as middleware
  xapp.use(doSomething, mutateSomeMore, checkIfHasParams, function(req,res,next) {})
 
 
  // Catch-alls
  xapp.use(function(req,res,next){
    // will get called with every request, unless the chain already ended
  })
 
  // Catch-alls, but only for certain methods
  xapp.get(function(req,res,next) {})
 

Credit

All of this is definitely not possible, without the great work done on these projects... faux-jax and path-to-regexp

Readme

Keywords

Package Sidebar

Install

npm i xmock

Weekly Downloads

15

Version

0.3.0

License

ISC

Last publish

Collaborators

  • ponelat