From 1a651607e12bd90538fcdc2ab0fda0cc7f39036b Mon Sep 17 00:00:00 2001 From: Neek Sandhu Date: Sun, 19 Nov 2017 01:27:16 -0800 Subject: [PATCH] Fix value check logic for ms arg (#5) --- index.js | 2 +- test.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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); });