]> source.dussan.org Git - jquery.git/commitdiff
Tests: Fix Karma tests on Node.js 20
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Thu, 8 Feb 2024 22:52:19 +0000 (23:52 +0100)
committerGitHub <noreply@github.com>
Thu, 8 Feb 2024 22:52:19 +0000 (23:52 +0100)
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

index a7a7a47b93b964f3a3afa86bf763c47a94b188ed..5fb067627e178bfa0e2ea3594b1fde1400edc398 100644 (file)
@@ -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 } ]