var assert = require('assert') var enforceType = require('../src/types') function CustomType() { return "ensure non-greedy match".toUpperCase() } var types = ['Array', 'Boolean', 'Buffer', 'Number', 'String', CustomType] var values = [[], true, new Buffer(1), 1234, 'foobar', new CustomType()] describe('enforceType', function() { types.forEach(function(type, i) { describe(type, function() { values.forEach(function(value, j) { if (j === i) { it('passes for ' + types[j], function() { enforceType(type, value) }) } else { it('fails for ' + types[j], function() { assert.throws(function() { enforceType(type, value) }, new RegExp('Expected ' + (type.name || type) + ', got ')) }) } }) }) }) })