mirror of
https://github.com/Cameri/nostream.git
synced 2025-06-09 06:29:10 +02:00
31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import { expect } from 'chai'
|
|
import Sinon from 'sinon'
|
|
|
|
import { MessageType, UnsubscribeMessage } from '../../../src/@types/messages'
|
|
import { IMessageHandler } from '../../../src/@types/message-handlers'
|
|
import { IWebSocketAdapter } from '../../../src/@types/adapters'
|
|
import { UnsubscribeMessageHandler } from '../../../src/handlers/unsubscribe-message-handler'
|
|
import { WebSocketAdapterEvent } from '../../../src/constants/adapter'
|
|
|
|
describe('UnsubscribeMessageHandler', () => {
|
|
let handler: IMessageHandler
|
|
let websocketAdapter: IWebSocketAdapter
|
|
let emitStub: Sinon.SinonStub
|
|
beforeEach(() => {
|
|
emitStub = Sinon.stub()
|
|
websocketAdapter = {
|
|
emit: emitStub,
|
|
} as any
|
|
handler = new UnsubscribeMessageHandler(websocketAdapter)
|
|
})
|
|
|
|
describe('handleMessage()', () => {
|
|
it('emits unsubscribe event with subscription Id', async () => {
|
|
const message: UnsubscribeMessage = [MessageType.CLOSE, 'subscriptionId']
|
|
await handler.handleMessage(message)
|
|
|
|
expect(emitStub).to.have.been.calledOnceWithExactly(WebSocketAdapterEvent.Unsubscribe, 'subscriptionId')
|
|
})
|
|
})
|
|
})
|