Connection starts dead, socket connect is initiated, connection is restored, socket connect succeeds
Connection starts as usual, socket connection is established, connection drops, channel join is attempted, connection is restored, channel join succeeds
Connection starts as usual, socket connection is established and channel joined, connection drops then is restored, message is sent on channel and reply is received
To test those, a control side-channel was added to the test backend so the client can tell the backend to start and stop the websocket server at precise times.
Test that the following scenarios work:
To test those, a control side-channel was added to the test backend so the client can tell the backend to start and stop the websocket server at precise times.