From b2a6fedce908bd348054b6fbb6e81fe638ef9744 Mon Sep 17 00:00:00 2001 From: Daniel Mohns Date: Wed, 6 Mar 2019 16:57:23 +0100 Subject: [PATCH] fix: do not overwrite Content-Type if header already exists (#377) --- lib/middleware.js | 4 +++- test/tests/server.js | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/middleware.js b/lib/middleware.js index 2afa2588f..4a2365a20 100644 --- a/lib/middleware.js +++ b/lib/middleware.js @@ -79,7 +79,9 @@ module.exports = function wrapper(context) { contentType += '; charset=UTF-8'; } - res.setHeader('Content-Type', contentType); + if (!res.getHeader('Content-Type')) { + res.setHeader('Content-Type', contentType); + } res.setHeader('Content-Length', content.length); const { headers } = context.options; diff --git a/test/tests/server.js b/test/tests/server.js index 90f9e6565..36f7cd0fc 100644 --- a/test/tests/server.js +++ b/test/tests/server.js @@ -259,6 +259,27 @@ describe('Server', () => { }); }); + describe('custom Content-Type', () => { + before((done) => { + app = express(); + const compiler = webpack(webpackConfig); + instance = middleware(compiler, { + stats: 'errors-only', + logLevel, + headers: { 'Content-Type': 'application/octet-stream' } + }); + app.use(instance); + listen = listenShorthand(done); + }); + after(close); + + it('Do not guess mime type if Content-Type header is found ', (done) => { + request(app).get('/bundle.js') + .expect('Content-Type', 'application/octet-stream') + .expect(200, done); + }); + }); + describe('custom mimeTypes', () => { before((done) => { app = express();