test(stream): wait for the reconnect event

The fixed 35ms sleep could finish before reconnect when workspace builds and test workers ran concurrently. Poll the actual ready frame and always close the runtime.

The final workspace run passed: 429 UI, 40 VS Code, 23 Electron and 4 root test files; 2154 web tests passed with one existing platform skip.
This commit is contained in:
Bohdan Triapitsyn
2026-09-09 19:39:28 +03:00
parent adffdb81a3
commit 0e8ee31816
@@ -446,18 +446,18 @@ describe('message stream websocket runtime', () => {
const socket = new FakeSocket(); const socket = new FakeSocket();
runtime.wsServer.emit('connection', socket, { url: '/api/global/event/ws' }); runtime.wsServer.emit('connection', socket, { url: '/api/global/event/ws' });
await new Promise((resolve) => setTimeout(resolve, 35)); try {
// Wait for the reconnect event itself; a 35ms sleep raced the event
const readyFrames = socket.sent.filter((frame) => frame.type === 'ready'); // loop when the workspace build and test workers ran together.
const eventFrames = socket.sent.filter((frame) => frame.type === 'event' && frame.payload?.type === 'server.connected'); await expect.poll(() => socket.sent.filter((frame) => frame.type === 'ready').length).toBeGreaterThanOrEqual(2);
const eventFrames = socket.sent.filter((frame) => frame.type === 'event' && frame.payload?.type === 'server.connected');
expect(readyFrames.length).toBeGreaterThanOrEqual(2); expect(eventFrames.length).toBeGreaterThanOrEqual(2);
expect(eventFrames.length).toBeGreaterThanOrEqual(2); expect(fetchCalls.slice(0, 2)).toEqual([null, 'evt-1']);
expect(fetchCalls.slice(0, 2)).toEqual([null, 'evt-1']); expect(triggerHealthCheckCalls).toBe(0);
expect(triggerHealthCheckCalls).toBe(0); } finally {
socket.close();
socket.close(); await runtime.close();
await runtime.close(); }
}); });
it('keeps synthetic event processing on forwarded upstream events', async () => { it('keeps synthetic event processing on forwarded upstream events', async () => {