diff --git a/lib/adapters/fetch.js b/lib/adapters/fetch.js index d053e57..91af945 100644 --- a/lib/adapters/fetch.js +++ b/lib/adapters/fetch.js @@ -169,7 +169,7 @@ export default isFetchSupported && (async (config) => { if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) { const options = {}; - Object.getOwnPropertyNames(response).forEach(prop => { + ['status', 'statusText', 'headers'].forEach(prop => { options[prop] = response[prop]; }); diff --git a/test/unit/adapters/fetch.js b/test/unit/adapters/fetch.js index 1d8498e..546fa2c 100644 --- a/test/unit/adapters/fetch.js +++ b/test/unit/adapters/fetch.js @@ -380,4 +380,17 @@ describe('supports fetch with nodejs', function () { assert.strictEqual(err.cause && err.cause.code, 'ENOTFOUND'); } }); + + it('should get response headers', async () => { + server = await startHTTPServer((req, res) => { + res.setHeader('foo', 'bar'); + res.end(req.url) + }); + + const {headers} = await fetchAxios.get('/', { + responseType: 'stream' + }); + + assert.strictEqual(headers.get('foo'), 'bar'); + }); });