From 971519038a687d8db294cf3613ebf4b1d24e44b8 Mon Sep 17 00:00:00 2001 From: LiviaMedeiros Date: Wed, 27 Jul 2022 19:05:09 +0800 Subject: [PATCH 1/2] fix: follow signal.reason in Request --- lib/fetch/request.js | 10 +++++----- test/fetch/request.js | 10 ++++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/fetch/request.js b/lib/fetch/request.js index 7e1b3d8eb1d..7fda8d90b28 100644 --- a/lib/fetch/request.js +++ b/lib/fetch/request.js @@ -367,9 +367,9 @@ class Request { } if (signal.aborted) { - ac.abort() + ac.abort(signal.reason) } else { - const abort = () => ac.abort() + const abort = () => ac.abort(signal.reason) signal.addEventListener('abort', abort, { once: true }) requestFinalizer.register(this, { signal, abort }) } @@ -726,12 +726,12 @@ class Request { // 4. Make clonedRequestObject’s signal follow this’s signal. const ac = new AbortController() if (this.signal.aborted) { - ac.abort() + ac.abort(this.signal.reason) } else { this.signal.addEventListener( 'abort', - function () { - ac.abort() + () => { + ac.abort(this.signal.reason) }, { once: true } ) diff --git a/test/fetch/request.js b/test/fetch/request.js index a230110983a..8a9d7c4e5c3 100644 --- a/test/fetch/request.js +++ b/test/fetch/request.js @@ -270,9 +270,10 @@ test('undefined signal', t => { test('pre aborted signal', t => { const ac = new AbortController() - ac.abort() + ac.abort('gwak') const req = new Request('http://asd', { signal: ac.signal }) t.equal(req.signal.aborted, true) + t.equal(req.signal.reason, 'gwak') t.end() }) @@ -283,16 +284,17 @@ test('post aborted signal', t => { const req = new Request('http://asd', { signal: ac.signal }) t.equal(req.signal.aborted, false) ac.signal.addEventListener('abort', () => { - t.pass() + t.equals(req.signal.reason, 'gwak') }) - ac.abort() + ac.abort('gwak') }) test('pre aborted signal cloned', t => { const ac = new AbortController() - ac.abort() + ac.abort('gwak') const req = new Request('http://asd', { signal: ac.signal }).clone() t.equal(req.signal.aborted, true) + t.equal(req.signal.reason, 'gwak') t.end() }) From 1e3a0192b10b905fefc5469d6e64f6bbd356e71f Mon Sep 17 00:00:00 2001 From: LiviaMedeiros Date: Wed, 27 Jul 2022 20:07:46 +0800 Subject: [PATCH 2/2] squash: fix test --- test/fetch/request.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/test/fetch/request.js b/test/fetch/request.js index 8a9d7c4e5c3..216d7e03bbb 100644 --- a/test/fetch/request.js +++ b/test/fetch/request.js @@ -8,6 +8,7 @@ const { Headers } = require('../../') const { kState } = require('../../lib/fetch/symbols.js') +const hasSignalReason = !!~process.version.localeCompare('v16.14.0', undefined, { numeric: true }) test('arg validation', async (t) => { // constructor @@ -273,7 +274,9 @@ test('pre aborted signal', t => { ac.abort('gwak') const req = new Request('http://asd', { signal: ac.signal }) t.equal(req.signal.aborted, true) - t.equal(req.signal.reason, 'gwak') + if (hasSignalReason) { + t.equal(req.signal.reason, 'gwak') + } t.end() }) @@ -284,7 +287,11 @@ test('post aborted signal', t => { const req = new Request('http://asd', { signal: ac.signal }) t.equal(req.signal.aborted, false) ac.signal.addEventListener('abort', () => { - t.equals(req.signal.reason, 'gwak') + if (hasSignalReason) { + t.equal(req.signal.reason, 'gwak') + } else { + t.pass() + } }) ac.abort('gwak') }) @@ -294,7 +301,9 @@ test('pre aborted signal cloned', t => { ac.abort('gwak') const req = new Request('http://asd', { signal: ac.signal }).clone() t.equal(req.signal.aborted, true) - t.equal(req.signal.reason, 'gwak') + if (hasSignalReason) { + t.equal(req.signal.reason, 'gwak') + } t.end() }) @@ -326,9 +335,13 @@ test('post aborted signal cloned', t => { const req = new Request('http://asd', { signal: ac.signal }).clone() t.equal(req.signal.aborted, false) ac.signal.addEventListener('abort', () => { - t.pass() + if (hasSignalReason) { + t.equal(req.signal.reason, 'gwak') + } else { + t.pass() + } }) - ac.abort() + ac.abort('gwak') }) test('Passing headers in init', (t) => {