mocha-apiary-reporter
Version:
Generate API documentation using Apiary's Blueprint style, then plug it right into apiary.io to get beautiful docs!
44 lines (33 loc) • 1.26 kB
JavaScript
var sinon = require('sinon');
var patch = require('./patch-require');
var instruments = {
superagent: require('./instruments/superagent'),
supertest: require('./instruments/supertest'),
restify: require('./instruments/restify')
}
var sandbox = sinon.sandbox.create();
exports.setup = function() {
patch.module('superagent', function(instance) {
Request = instance.Request;
replace(Request.prototype, 'write', instruments.superagent.write);
replace(Request.prototype, 'attach', instruments.superagent.attach);
});
patch.module('supertest', function(instance) {
Test = instance.Test;
replace(Test.prototype, 'expect', instruments.supertest.expect);
replace(Test.prototype, 'assert', instruments.supertest.assert);
});
patch.module('restify', function(instance) {
var dummyServer = instance.createServer();
Router = dummyServer.router.constructor;
replace(Router.prototype, 'find', instruments.restify.find);
});
};
exports.restore = function() {
sandbox.restore();
};
function replace(instance, functionName, replacement) {
instance.__shimmed = instance.__shimmed || {};
instance.__shimmed[functionName] = instance[functionName];
sandbox.stub(instance, functionName, replacement)
};