Tengo un administrador de SignalR en funcionamiento con una connection: HubConnection que ya está construido con .build() . Compruebe el siguiente ejemplo rápido:
const connection: HubConnection = new HubConnectionBuilder().withUrl(...).build(); connection.start().then(() => { console.log('connected'); ... connection.on('PushNewMessage', (message) => addNewMessageToReduxStore(message)); connection.on('DeleteMessage', (messageId) => deleteMessageFromStoreWithId(messageId)); ... }); El servidor envía el mensaje 'PushNewMessage' con un objeto con texto de cadena e identificación de número. Esto activa el addNewMessageToReduxStore(message) que se rastrea en busca de cambios y activa más cambios de Redux.
Quiero escribir una prueba de unidad que comience con "Servidor enviando un mensaje" y compare el estado final de la tienda Redux después de 5 segundos desde que se recibió el mensaje del servidor para que coincida con un estado esperado de la tienda; luego, la prueba pasará.
Entonces, ¿cómo simular recibir un mensaje del servidor en ese socket web exacto administrado por HubConnection utilizado en la inicialización de la prueba unitaria?