|
@@ -2,6 +2,7 @@ import 'reflect-metadata'
|
|
|
|
|
|
import { WebSocketsConnectionRepositoryInterface } from '../../Domain/WebSockets/WebSocketsConnectionRepositoryInterface'
|
|
import { WebSocketsConnectionRepositoryInterface } from '../../Domain/WebSockets/WebSocketsConnectionRepositoryInterface'
|
|
import { AxiosInstance } from 'axios'
|
|
import { AxiosInstance } from 'axios'
|
|
|
|
+import { Logger } from 'winston'
|
|
|
|
|
|
import { WebSocketsClientMessenger } from './WebSocketsClientMessenger'
|
|
import { WebSocketsClientMessenger } from './WebSocketsClientMessenger'
|
|
|
|
|
|
@@ -9,11 +10,12 @@ describe('WebSocketsClientMessenger', () => {
|
|
let connectionIds: string[]
|
|
let connectionIds: string[]
|
|
let webSocketsConnectionRepository: WebSocketsConnectionRepositoryInterface
|
|
let webSocketsConnectionRepository: WebSocketsConnectionRepositoryInterface
|
|
let httpClient: AxiosInstance
|
|
let httpClient: AxiosInstance
|
|
|
|
+ let logger: Logger
|
|
|
|
|
|
const webSocketsApiUrl = 'http://test-websockets'
|
|
const webSocketsApiUrl = 'http://test-websockets'
|
|
|
|
|
|
const createService = () =>
|
|
const createService = () =>
|
|
- new WebSocketsClientMessenger(webSocketsConnectionRepository, httpClient, webSocketsApiUrl)
|
|
|
|
|
|
+ new WebSocketsClientMessenger(webSocketsConnectionRepository, httpClient, webSocketsApiUrl, logger)
|
|
|
|
|
|
beforeEach(() => {
|
|
beforeEach(() => {
|
|
connectionIds = ['1', '2']
|
|
connectionIds = ['1', '2']
|
|
@@ -22,7 +24,11 @@ describe('WebSocketsClientMessenger', () => {
|
|
webSocketsConnectionRepository.findAllByUserUuid = jest.fn().mockReturnValue(connectionIds)
|
|
webSocketsConnectionRepository.findAllByUserUuid = jest.fn().mockReturnValue(connectionIds)
|
|
|
|
|
|
httpClient = {} as jest.Mocked<AxiosInstance>
|
|
httpClient = {} as jest.Mocked<AxiosInstance>
|
|
- httpClient.request = jest.fn()
|
|
|
|
|
|
+ httpClient.request = jest.fn().mockReturnValue({ status: 200 })
|
|
|
|
+
|
|
|
|
+ logger = {} as jest.Mocked<Logger>
|
|
|
|
+ logger.debug = jest.fn()
|
|
|
|
+ logger.error = jest.fn()
|
|
})
|
|
})
|
|
|
|
|
|
it('should send a message to all user connections', async () => {
|
|
it('should send a message to all user connections', async () => {
|
|
@@ -40,4 +46,12 @@ describe('WebSocketsClientMessenger', () => {
|
|
)
|
|
)
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|
|
+
|
|
|
|
+ it('should log an error if message could not be sent', async () => {
|
|
|
|
+ httpClient.request = jest.fn().mockReturnValue({ status: 400 })
|
|
|
|
+
|
|
|
|
+ await createService().send('1-2-3', 'message')
|
|
|
|
+
|
|
|
|
+ expect(logger.error).toHaveBeenCalledTimes(connectionIds.length)
|
|
|
|
+ })
|
|
})
|
|
})
|