Skip to content
This repository was archived by the owner on Feb 2, 2024. It is now read-only.

Commit c13e7a7

Browse files
authored
Preset origin response code (#32)
preset the origin response code before calling onResponse hooks implementations.
1 parent a2a0bc6 commit c13e7a7

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,12 @@ module.exports = (opts) => {
109109
copyHeaders(rewriteHeaders(headers), res)
110110
}
111111

112+
// set origin response code
113+
res.statusCode = statusCode
114+
112115
if (onResponse) {
113116
onResponse(req, res, stream)
114117
} else {
115-
res.statusCode = statusCode
116118
pump(stream, res)
117119
}
118120
})

test/4.opts.test.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,15 @@ describe('fast-proxy smoke', () => {
5050
service = require('restana')()
5151
service.use(bodyParser.json())
5252

53-
service.get('/service/headers', (req, res) => {
54-
res.setHeader('url', req.url)
55-
res.send()
56-
})
53+
service
54+
.get('/service/headers', (req, res) => {
55+
res.setHeader('url', req.url)
56+
res.send()
57+
})
58+
.get('/service/302', (req, res) => {
59+
res.statusCode = 302
60+
res.end()
61+
})
5762

5863
await service.start(3000)
5964
})
@@ -86,6 +91,12 @@ describe('fast-proxy smoke', () => {
8691
})
8792
})
8893

94+
it('should retrieve http status from origin', async () => {
95+
await request(gHttpServer)
96+
.get('/service/302')
97+
.expect(302)
98+
})
99+
89100
it('close all', async () => {
90101
close()
91102
await gateway.close()

0 commit comments

Comments
 (0)