Test failure to wrap method

This commit is contained in:
Shane Kilkelly 2017-03-16 10:02:19 +00:00
parent 40b238271d
commit a5aec5b812
3 changed files with 24 additions and 2 deletions

View file

@ -77,3 +77,13 @@ describe 'timeAsyncMethod', ->
expect(@Timer.done.callCount).to.equal 1
expect(@logger.log.callCount).to.equal 1
done()
describe 'when the wrapper cannot be applied', ->
beforeEach ->
it 'should raise an error', ->
badWrap = () =>
@timeAsyncMethod @testObject, 'DEFINITELY_NOT_A_REAL_METHOD', 'test.nextNumber'
expect(badWrap).to.throw(
/^.*expected object property 'DEFINITELY_NOT_A_REAL_METHOD' to be a function.*$/
)

View file

@ -88,7 +88,7 @@
})(this));
});
});
return describe('when a logger is supplied', function() {
describe('when a logger is supplied', function() {
beforeEach(function() {
return this.logger = {
log: sinon.stub()
@ -108,6 +108,18 @@
})(this));
});
});
return describe('when the wrapper cannot be applied', function() {
beforeEach(function() {});
return it('should raise an error', function() {
var badWrap;
badWrap = (function(_this) {
return function() {
return _this.timeAsyncMethod(_this.testObject, 'DEFINITELY_NOT_A_REAL_METHOD', 'test.nextNumber');
};
})(this);
return expect(badWrap).to["throw"](/^.*expected object property 'DEFINITELY_NOT_A_REAL_METHOD' to be a function.*$/);
});
});
});
}).call(this);

View file

@ -3,7 +3,7 @@ module.exports = (obj, methodName, key, logger) ->
metrics = require('./metrics')
if typeof obj[methodName] != 'function'
throw new Error("[Metrics] expected object property #{methodName} to be a function")
throw new Error("[Metrics] expected object property '#{methodName}' to be a function")
realMethod = obj[methodName]
key = "methods.#{key}"