conditional
Version:
A preconditions package based on Google's Preconditions library
54 lines (48 loc) • 1.86 kB
JavaScript
(function() {
var IllegalArgumentError, IllegalStateError, checkArgument, checkState, runTests;
require('./helpers/test_helper');
checkArgument = preconditions.checkArgument, IllegalArgumentError = preconditions.IllegalArgumentError, checkState = preconditions.checkState, IllegalStateError = preconditions.IllegalStateError;
runTests = function(test) {
test('argument', checkArgument, IllegalArgumentError);
return test('state', checkState, IllegalStateError);
};
runTests(function(name, checker, errorType) {
return describe("test " + name + " precondition", function() {
it('happy path test', function() {
var wrapper;
wrapper = function() {
return checker(true, 'valid argument');
};
return assert.doesNotThrow(wrapper);
});
it("'null' condition value also results in a error", function() {
var wrapper;
wrapper = function() {
return checker(null, "'null' is not allowed");
};
return assert.throws(wrapper, errorType, "'null' is not allowed");
});
it('a non-undefined value for condition is valid', function() {
var wrapper;
wrapper = function() {
return checker('random', 'a non-undefined value is allowed');
};
return assert.doesNotThrow(wrapper);
});
it('a empty string value for condition is valid', function() {
var wrapper;
wrapper = function() {
return checker('', 'a string value is allowed');
};
return assert.doesNotThrow(wrapper);
});
return it('a numerical value 0 is valid', function() {
var wrapper;
wrapper = function() {
return checker(0, '0 (zero) value is allowed');
};
return assert.doesNotThrow(wrapper);
});
});
});
}).call(this);