Zock is an HTTP mocking library for both node.js and the browser Similar to Nock (but isomorphic)
Contributions weclome!
$ npm install zock
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()
Set the base url that the following routes will be based from
Begin defining a mocked GET request
Begin defining a mocked POST request
Begin defining a mocked PUT request
Begin defining a mocked Exoid request see https://github.com/Zorium/exoid for more information
Define reply for the previously defined mock request Second parameter is a function to override entire response object instead of using return value as body
Bind a logging function for debugging
zock
.logger(function(debug) {
console.log(debug)
})
Return special XMLHttpRequest stub object based on previous setup
Return special fetch stub object based on previous setup
Return special http.request (or https.request) stub object based on previous setup
runs the function passed in with global overrides enabled, and removes after the function returns Supports promises
Allow outbound network requests
$ npm -d install
$ npm test
0.2.10 -> 0.3.0
- [node] support https
- outbound requests fail by default
- add
allowOutbound()
0.1.3 -> 0.2.0
- rename withOverride to withOverrides
- add window.fetch support