UNPKG

conditional

Version:

A preconditions package based on Google's Preconditions library

54 lines (48 loc) 1.86 kB
(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);