fix: resolve CI test timing and merge conflict with dev

- Fix connection tracking test: wait for 'close' event instead of only
  checking socket.destroyed (more reliable in CI environments)
- Increase timeout from 500ms to 1000ms for CI latency
- Add proper socket cleanup after test
- Merge dev changes: add projectId parameter to registerAccount()
This commit is contained in:
kaitranntt committed 2026-01-15 13:39:16 -05:00
commit 504b1b3974
30 files changed
+1935 -103

No files matched your search

+17 -5
View File
@@ -313,6 +313,13 @@ describe('HttpsTunnelProxy', () => {
// Create a connection
const socket = new (await import('net')).Socket();
// Track when the socket closes (from server-side destroy)
let socketClosed = false;
socket.on('close', () => {
socketClosed = true;
});
const connectPromise = new Promise<void>((resolve, reject) => {
socket.connect(port, '127.0.0.1', () => resolve());
socket.on('error', reject);
@@ -323,13 +330,18 @@ describe('HttpsTunnelProxy', () => {
// Stop should forcefully close connections
tunnel.stop();
// Socket should be destroyed (allow more time for CI environments)
// Wait up to 500ms for socket to be destroyed
for (let i = 0; i < 10; i++) {
if (socket.destroyed) break;
// Wait for close event (server destroys connection, client receives close)
// Allow up to 1000ms for CI environments with higher latency
for (let i = 0; i < 20; i++) {
if (socketClosed || socket.destroyed) break;
await new Promise((resolve) => setTimeout(resolve, 50));
}
expect(socket.destroyed).toBe(true);
expect(socketClosed || socket.destroyed).toBe(true);
// Clean up client socket if not already destroyed
if (!socket.destroyed) {
socket.destroy();
}
});
});