node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

zock-js

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
  })
  .withOverride(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

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