diff --git a/index.js b/index.js index 9748b9b..fa48cc7 100644 --- a/index.js +++ b/index.js @@ -9,7 +9,7 @@ class TimeoutError extends Error { } module.exports = (promise, ms, fallback) => new Promise((resolve, reject) => { - if (typeof ms !== 'number' && ms >= 0) { + if (typeof ms !== 'number' || ms < 0) { throw new TypeError('Expected `ms` to be a positive number'); } diff --git a/test.js b/test.js index 7efba1a..68f3da3 100644 --- a/test.js +++ b/test.js @@ -9,6 +9,14 @@ test('resolves before timeout', async t => { t.is(await m(delay(50).then(() => fixture), 200), fixture); }); +test('throws when ms is not number', async t => { + await t.throws(m(delay(50), '200'), TypeError); +}); + +test('throws when ms is negative number', async t => { + await t.throws(m(delay(50), -1), TypeError); +}); + test('rejects after timeout', async t => { await t.throws(m(delay(200), 50), m.TimeoutError); });