From ac5a9d678822e9ed0960b84814b5a194e509eb69 Mon Sep 17 00:00:00 2001 From: Ricardo Arturo Cabral Mejia Date: Mon, 3 Oct 2022 01:47:47 +0000 Subject: [PATCH] test: add UnsubscribeMessageHandler unit tests --- .../unsubscribe-message-handler.spec.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 test/unit/handlers/unsubscribe-message-handler.spec.ts diff --git a/test/unit/handlers/unsubscribe-message-handler.spec.ts b/test/unit/handlers/unsubscribe-message-handler.spec.ts new file mode 100644 index 0000000..d8b3cbb --- /dev/null +++ b/test/unit/handlers/unsubscribe-message-handler.spec.ts @@ -0,0 +1,30 @@ +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') + }) + }) +})