From 205e224bcd3e1cc756841c62d0f6a0e503d7dfbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20M=C3=A5rtensson?= Date: Thu, 20 Oct 2016 20:44:56 +0200 Subject: [PATCH] Add `requestUrl` to response in streaming mode (#230) * Add `requestUrl` to response in streaming mode (Fixes #229). * Set `requestUrl` inside `requestAsEventEmitter()` --- index.js | 4 +++- test/stream.js | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 606f74e..88e448e 100644 --- a/index.js +++ b/index.js @@ -22,6 +22,7 @@ function requestAsEventEmitter(opts) { opts = opts || {}; const ee = new EventEmitter(); + const requestUrl = opts.href || urlLib.resolve(urlLib.format(opts), opts.path); let redirectCount = 0; let retryCount = 0; let redirectUrl; @@ -36,6 +37,8 @@ function requestAsEventEmitter(opts) { res.url = redirectUrl; } + res.requestUrl = requestUrl; + if (isRedirect(statusCode) && opts.followRedirect && 'location' in res.headers && (opts.method === 'GET' || opts.method === 'HEAD')) { res.resume(); @@ -105,7 +108,6 @@ function asPromise(opts) { const limitStatusCode = opts.followRedirect ? 299 : 399; res.body = data; - res.requestUrl = opts.href || urlLib.resolve(urlLib.format(opts), opts.path); if (opts.json && res.body) { try { diff --git a/test/stream.js b/test/stream.js index 530dd59..6c9d359 100644 --- a/test/stream.js +++ b/test/stream.js @@ -119,6 +119,14 @@ test.cb('accepts option.body as Stream', t => { }); }); +test.cb('redirect response contains old url', t => { + got.stream(`${s.url}/redirect`) + .on('response', res => { + t.is(res.requestUrl, `${s.url}/redirect`); + t.end(); + }); +}); + test.after('cleanup', async () => { await s.close(); });