62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
var nock = require('nock');
|
|
var utils = require('../../lib/utils');
|
|
|
|
var extend = utils.extend;
|
|
var replace = utils.replace;
|
|
|
|
function Nockle(base, config) {
|
|
if (!(this instanceof Nockle)) {
|
|
return new Nockle(base, config);
|
|
}
|
|
|
|
this.base = base;
|
|
this.config = extend({}, config);
|
|
}
|
|
|
|
Nockle.prototype.succeed = function (method, api, values, reply) {
|
|
values = extend({}, this.config, values);
|
|
return nock(replace(this.base, values))[method](replace(api, values))
|
|
.reply(200, reply || {});
|
|
};
|
|
|
|
Nockle.prototype.fail = function (method, api, values, reply) {
|
|
values = extend({}, this.config, values);
|
|
return nock(replace(this.base, values))[method](replace(api, values))
|
|
.reply(404, reply || { error: 'error' });
|
|
};
|
|
|
|
Nockle.prototype.get = function (api, values, reply) {
|
|
return this.succeed('get', api, values, reply);
|
|
};
|
|
|
|
Nockle.prototype.post = function (api, values, reply) {
|
|
return this.succeed('post', api, values, reply);
|
|
};
|
|
|
|
Nockle.prototype.put = function (api, values, reply) {
|
|
return this.succeed('put', api, values, reply);
|
|
};
|
|
|
|
Nockle.prototype.delete = function (api, values, reply) {
|
|
return this.succeed('delete', api, values, reply);
|
|
};
|
|
|
|
Nockle.prototype.failget = function (api, values, reply) {
|
|
return this.fail('get', api, values, reply);
|
|
};
|
|
|
|
Nockle.prototype.failpost = function (api, values, reply) {
|
|
return this.fail('post', api, values, reply);
|
|
};
|
|
|
|
Nockle.prototype.failput = function (api, values, reply) {
|
|
return this.fail('put', api, values, reply);
|
|
};
|
|
|
|
Nockle.prototype.faildelete = function (api, values, reply) {
|
|
return this.fail('delete', api, values, reply);
|
|
};
|
|
|
|
module.exports = function (chai) {
|
|
chai.Nockle = Nockle;
|
|
};
|