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:
@@ -446,18 +446,18 @@ describe('message stream websocket runtime', () => {
|
||||
const socket = new FakeSocket();
|
||||
runtime.wsServer.emit('connection', socket, { url: '/api/global/event/ws' });
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 35));
|
||||
|
||||
const readyFrames = socket.sent.filter((frame) => frame.type === 'ready');
|
||||
try {
|
||||
// Wait for the reconnect event itself; a 35ms sleep raced the event
|
||||
// loop when the workspace build and test workers ran together.
|
||||
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(fetchCalls.slice(0, 2)).toEqual([null, 'evt-1']);
|
||||
expect(triggerHealthCheckCalls).toBe(0);
|
||||
|
||||
} finally {
|
||||
socket.close();
|
||||
await runtime.close();
|
||||
}
|
||||
});
|
||||
|
||||
it('keeps synthetic event processing on forwarded upstream events', async () => {
|
||||
|
||||
Reference in New Issue
Block a user