From 84a7a9d85b6a806cd65fcd72b330d598e65f552b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Garapich?= Date: Wed, 29 Nov 2023 11:43:52 +0100 Subject: [PATCH] add tests --- src/rooms/gateways/rooms.gateway.spec.ts | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/rooms/gateways/rooms.gateway.spec.ts b/src/rooms/gateways/rooms.gateway.spec.ts index 54cccb7f6..83a2ad3e4 100644 --- a/src/rooms/gateways/rooms.gateway.spec.ts +++ b/src/rooms/gateways/rooms.gateway.spec.ts @@ -1,8 +1,10 @@ import { Test, TestingModule } from '@nestjs/testing'; import { RoomsGateway } from './rooms.gateway'; +import { Socket } from 'socket.io'; describe('RoomsGateway', () => { let gateway: RoomsGateway; + let socket: jest.Mocked; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ @@ -12,7 +14,33 @@ describe('RoomsGateway', () => { gateway = module.get(RoomsGateway); }); + beforeEach(() => { + socket = { + rooms: new Set(), + join: jest.fn().mockImplementation((room) => socket.rooms.add(room)), + leave: jest.fn().mockImplementation((room) => socket.rooms.delete(room)), + } as unknown as jest.Mocked; + }); + it('should be defined', () => { expect(gateway).toBeDefined(); }); + + describe('#join()', () => { + it('should join', () => { + const ret = gateway.join(socket, 'FAKE_ROOM'); + expect(ret).toEqual(['FAKE_ROOM']); + }); + }); + + describe('#leave()', () => { + beforeEach(() => { + socket.rooms.add('FAKE_ROOM'); + }); + + it('should leave', () => { + const ret = gateway.leave(socket, 'FAKE_ROOM'); + expect(ret).toEqual([]); + }); + }); });