From 5001a31e401b2de1bf4cfd68b96de36d412cfad8 Mon Sep 17 00:00:00 2001 From: dupontbertrand Date: Fri, 10 Apr 2026 10:40:59 +0200 Subject: [PATCH] fix: disable HMR proxy in test mode to prevent WebSocket interference In test mode (`meteor test --full-app`), `Meteor.isDevelopment` is true but no rspack dev server is running (test mode uses `runRspackBuild`, not `startRspackClientServe`). The HMR proxy was still being activated, registering WebSocket upgrade handlers pointing to a port where nothing listens. This caused SockJS WebSocket corruption ("Invalid frame header") and subsequent DDP message failures (`msg.fields` arriving as undefined). Adding `!Meteor.isTest && !Meteor.isAppTest` to the proxy guard ensures it is only enabled when the dev server is actually running. --- packages/rspack/rspack_server.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/rspack/rspack_server.js b/packages/rspack/rspack_server.js index 9c55294738..3d555deeda 100644 --- a/packages/rspack/rspack_server.js +++ b/packages/rspack/rspack_server.js @@ -31,6 +31,7 @@ const RSPACK_ASSETS_REGEX = new RegExp( const shouldEnableDevHMRProxy = global?.Package?.["tools-core"] != null && Meteor.isDevelopment && + !Meteor.isTest && !Meteor.isAppTest && !process.env.RSPACK_NATIVE; if (shouldEnableDevHMRProxy) { const { shuffleString } = require('meteor/tools-core/lib/string');