HTTP mocking library for node.js and the browser
CoffeeScript
Permalink
Failed to load latest commit information.
src
test
.editorconfig
.gitignore
Gulpfile.coffee
LICENSE
README.md
package.json

README.md

Zock Build Status

Zock is an HTTP mocking library for both node.js and the browser
Similar to Nock (but isomorphic)

Contributions weclome!

Install

$ npm install zock

Usage

require('coffee-script/register') // register coffee-script
var request = require('clay-request')
var zock = require('zock')

zock
  .base('http://baseurl.com')
  .get('/test')
  .reply(200, {hello: 'world'})
  .get('/anotherRoute')
  .reply(200, {hello: 'world'})
  .post('postroute')
  .reply({hello: 'post'})
  .get('/test/:name')
  .reply(function(req) {
    // req.params = path params
    // req.query = query params
    // req.body = post body (only supports JSON at the moment)
    return req
  })
  .withOverrides(function() {
    request('http://baseurl.com/test')
    .then(function (result) {
      // result = {hello: 'world'}
    })
  })


// permanent browser
window.XMLHttpRequest = zock
  .base('http://baseurl.com')
  .get('/test')
  .reply(200, {hello: 'world'})
  .XMLHttpRequest

window.fetch = zock
  .base('http://baseurl.com')
  .get('/test')
  .reply(200, {hello: 'world'})
  .fetch()

// permanent node.js
http = require 'http'
http.request = zock
  .base('http://baseurl.com')
  .get('/test')
  .reply(200, {hello: 'world'})
  .nodeRequest()

base({String} path)

Set the base url that the following routes will be based from

get({String} route)

Begin defining a mocked GET request

post({String} route)

Begin defining a mocked POST request

put({String} route)

Begin defining a mocked PUT request

exoid({String} path)

Begin defining a mocked Exoid request
see https://github.com/Zorium/exoid for more information

reply({String} [status]=200, {Object|Function} response)

Define reply for the previously defined mock request

logger({Function} logger)

Bind a logging function for debugging

zock
.logger(function(debug) {
  console.log(debug)
})

XMLHttpRequest

Return special XMLHttpRequest stub object based on previous setup

fetch

Return special fetch stub object based on previous setup

nodeRequest

Return special http.request stub object based on previous setup

withOverrides({Function} testCode)

runs the function passed in with global overrides enabled, and removes after the function returns
Supports promises

Contributing

$ npm -d install
$ npm test

Changelog

0.1.3 -> 0.2.0

  • rename withOverride to withOverrides
  • add window.fetch support