diff --git a/lib/api/api-request.js b/lib/api/api-request.js index 1d56fb0c9ad..20487761a83 100644 --- a/lib/api/api-request.js +++ b/lib/api/api-request.js @@ -21,7 +21,7 @@ class RequestHandler extends AsyncResource { throw new InvalidArgumentError('invalid callback') } - if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) { + if (highWaterMark != null && (!Number.isFinite(highWaterMark) || highWaterMark < 0)) { throw new InvalidArgumentError('invalid highWaterMark') } diff --git a/test/node-test/client-errors.js b/test/node-test/client-errors.js index 4021bb37955..d260f628b85 100644 --- a/test/node-test/client-errors.js +++ b/test/node-test/client-errors.js @@ -1161,7 +1161,7 @@ test('retry idempotent inflight', async (t) => { }) test('invalid opts', async (t) => { - const p = tspl(t, { plan: 5 }) + const p = tspl(t, { plan: 7 }) const client = new Client('http://localhost:5000') client.request(null, (err) => { @@ -1186,6 +1186,14 @@ test('invalid opts', async (t) => { p.ok(err instanceof errors.InvalidArgumentError) p.strictEqual(err.message, 'invalid highWaterMark') }) + client.request({ + path: '/', + method: 'GET', + highWaterMark: Number.NaN + }, (err) => { + p.ok(err instanceof errors.InvalidArgumentError) + p.strictEqual(err.message, 'invalid highWaterMark') + }) await p.completed })