From d478a1c0226b7825a99718bf605ef9727ee4beca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Go=C5=82=C4=99biowski-Owczarek?= Date: Thu, 8 Feb 2024 23:52:19 +0100 Subject: [PATCH] Tests: Fix Karma tests on Node.js 20 Node.js 20 started throwing errors when `writeHead` is called twice on a response. This might have already been invalid before but it wasn't throwing on Node.js 18. Compute the headers object and call `writeHead` once to avoid the issue. Closes gh-5397 --- test/middleware-mockserver.cjs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/test/middleware-mockserver.cjs b/test/middleware-mockserver.cjs index a7a7a47b9..5fb067627 100644 --- a/test/middleware-mockserver.cjs +++ b/test/middleware-mockserver.cjs @@ -80,13 +80,7 @@ const mocks = { headers[ "access-control-allow-origin" ] = "*"; } - if ( resp.set ) { - resp.set( headers ); - } else { - for ( const key in headers ) { - resp.writeHead( 200, { [ key ]: headers[ key ] } ); - } - } + resp.writeHead( 200, headers ); if ( req.query.callback ) { resp.end( `${ cleanCallback( req.query.callback ) }(${ JSON.stringify( { @@ -105,12 +99,14 @@ const mocks = { ); }, json: function( req, resp ) { + const headers = {}; if ( req.query.header ) { - resp.writeHead( 200, { "content-type": "application/json" } ); + headers[ "content-type" ] = "application/json"; } if ( req.query.cors ) { - resp.writeHead( 200, { "access-control-allow-origin": "*" } ); + headers[ "access-control-allow-origin" ] = "*"; } + resp.writeHead( 200, headers ); if ( req.query.array ) { resp.end( JSON.stringify( [ { name: "John", age: 21 }, { name: "Peter", age: 25 } ]