diff options
author | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:46:06 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:48:30 -0300 |
commit | 38acabfa6089ab8ac469c12b5f55022fb96935e5 (patch) | |
tree | 453dbf70000cc5e338b06201af1eaca8343f8f73 /date-fns/src/_lib/requiredArgs | |
parent | f26125e039143b92dc0d84e7775f508ab0cdcaa8 (diff) | |
download | node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.gz node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.bz2 node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.zip |
Diffstat (limited to 'date-fns/src/_lib/requiredArgs')
-rw-r--r-- | date-fns/src/_lib/requiredArgs/index.ts | 12 | ||||
-rw-r--r-- | date-fns/src/_lib/requiredArgs/test.js | 37 |
2 files changed, 49 insertions, 0 deletions
diff --git a/date-fns/src/_lib/requiredArgs/index.ts b/date-fns/src/_lib/requiredArgs/index.ts new file mode 100644 index 0000000..bdbb950 --- /dev/null +++ b/date-fns/src/_lib/requiredArgs/index.ts @@ -0,0 +1,12 @@ +export default function requiredArgs(required: number, args: IArguments) { + if (args.length < required) { + throw new TypeError( + required + + ' argument' + + (required > 1 ? 's' : '') + + ' required, but only ' + + args.length + + ' present' + ) + } +} diff --git a/date-fns/src/_lib/requiredArgs/test.js b/date-fns/src/_lib/requiredArgs/test.js new file mode 100644 index 0000000..a6cbe4a --- /dev/null +++ b/date-fns/src/_lib/requiredArgs/test.js @@ -0,0 +1,37 @@ +// @flow +/* eslint-env mocha */ + +import assert from 'power-assert' +import requiredArgs from '.' + +describe('requiredArgs', function () { + function wrapperFn(required) { + // $ExpectedMistake + return function () { + requiredArgs(required, arguments) + } + } + const twoArgsRequired = wrapperFn(2) + + describe('with correct number of passed arguments', function () { + it('does not throw an error', function () { + assert.doesNotThrow(() => twoArgsRequired(1, 2)) + }) + }) + + describe('with wrong number of arguments', function () { + it('throws correct error message', function () { + assert.throws( + function () { + twoArgsRequired(1) + }, + function (err) { + return ( + err instanceof TypeError && + err.message === '2 arguments required, but only 1 present' + ) + } + ) + }) + }) +}) |