it("test a user-defined type by registering it", function () { function dateType(arg) { var x = new Date(arg); if (x.toString().match('Invalid')) { throw new TypeError("" + arg + " is not a valid date."); } return x; } parser = new ArgumentParser({debug: true}); parser.register('type', 'dateType', dateType); parser.addArgument(['-d'], {type: 'dateType'}); args = parser.parseArgs(['-d', '1/1/2012']); assert.deepEqual(args, {d: new Date('1/1/2012')}); assert.throws( function () { parser.parseArgs(['-d', '13/1/2000']); }, /Invalid dateType value: (.*)/i ); });