From eb33090b81442bc6af9f714a5158160856a1e2f2 Mon Sep 17 00:00:00 2001 From: Maxim Shirshin Date: Mon, 6 Dec 2021 17:14:42 +0100 Subject: [PATCH] Chore: Fix logical operator priority (regression) to disallow GET/HEAD with non-empty body (#1369) --- src/request.js | 2 +- test/request.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/request.js b/src/request.js index 092b8c02a..d13873b6e 100644 --- a/src/request.js +++ b/src/request.js @@ -59,7 +59,7 @@ export default class Request extends Body { method = method.toUpperCase(); // eslint-disable-next-line no-eq-null, eqeqeq - if (((init.body != null || isRequest(input)) && input.body !== null) && + if ((init.body != null || (isRequest(input) && input.body !== null)) && (method === 'GET' || method === 'HEAD')) { throw new TypeError('Request with GET/HEAD method cannot have body'); } diff --git a/test/request.js b/test/request.js index de4fed1fa..527fab9d4 100644 --- a/test/request.js +++ b/test/request.js @@ -123,6 +123,8 @@ describe('Request', () => { .to.throw(TypeError); expect(() => new Request(base, {body: 'a', method: 'head'})) .to.throw(TypeError); + expect(() => new Request(new Request(base), {body: 'a'})) + .to.throw(TypeError); }); it('should throw error when including credentials', () => {