fix(tstest): Improve free port selection for Chrome runner and bump smartnetwork dependency

This commit is contained in:
2025-09-12 18:51:28 +00:00
parent 265ed702ee
commit aaebe75326
5 changed files with 314 additions and 17 deletions

View File

@@ -319,20 +319,19 @@ import '${absoluteTestFile.replace(/\\/g, '/')}';
private async findFreePorts(): Promise<{ httpPort: number; wsPort: number }> {
const smartnetwork = new plugins.smartnetwork.SmartNetwork();
// Find HTTP port in range 30000-40000
const httpPort = await smartnetwork.findFreePort(30000, 40000);
// Find random free HTTP port in range 30000-40000 to minimize collision chance
const httpPort = await smartnetwork.findFreePort(30000, 40000, { randomize: true });
if (!httpPort) {
throw new Error('Could not find a free HTTP port in range 30000-40000');
}
// Find WebSocket port in range 30000-40000 (different from HTTP port)
let wsPort = await smartnetwork.findFreePort(httpPort + 1, 40000);
// Find random free WebSocket port, excluding the HTTP port to ensure they're different
const wsPort = await smartnetwork.findFreePort(30000, 40000, {
randomize: true,
exclude: [httpPort]
});
if (!wsPort) {
// Try again from the beginning of the range if we couldn't find one after httpPort
wsPort = await smartnetwork.findFreePort(30000, httpPort - 1);
if (!wsPort) {
throw new Error('Could not find a free WebSocket port in range 30000-40000');
}
throw new Error('Could not find a free WebSocket port in range 30000-40000');
}
// Log selected ports for debugging