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?