Add Event_RemoveMessages

This commit is contained in:
ZeldaZach
2024-06-14 23:48:34 -04:00
parent e2ab8db958
commit 87b60f65c8
5 changed files with 18 additions and 66 deletions

View File

@@ -1,66 +0,0 @@
import { Message } from 'types';
import { RoomPersistence } from '../../persistence';
import {
RoomEvent,
JoinRoomData,
LeaveRoomData,
ListGamesData,
} from './interfaces';
import { RoomEvents } from '.';
describe.skip('RoomEvents', () => {
it('.Event_JoinRoom.ext should call RoomPersistence.userJoined', () => {
jest.spyOn(RoomPersistence, 'userJoined').mockImplementation(() => {});
const data: JoinRoomData = { userInfo: {} as any };
const event: RoomEvent = { roomEvent: { roomId: 1 } };
RoomEvents['.Event_JoinRoom.ext'](data, event);
expect(RoomPersistence.userJoined).toHaveBeenCalledWith(
event.roomEvent.roomId,
data.userInfo
);
});
it('.Event_LeaveRoom.ext should call RoomPersistence.userLeft', () => {
jest.spyOn(RoomPersistence, 'userLeft').mockImplementation(() => {});
const data: LeaveRoomData = { name: '' };
const event: RoomEvent = { roomEvent: { roomId: 1 } };
RoomEvents['.Event_LeaveRoom.ext'](data, event);
expect(RoomPersistence.userLeft).toHaveBeenCalledWith(
event.roomEvent.roomId,
data.name
);
});
it('.Event_ListGames.ext should call RoomPersistence.updateGames', () => {
jest.spyOn(RoomPersistence, 'updateGames').mockImplementation(() => {});
const data: ListGamesData = { gameList: [] };
const event: RoomEvent = { roomEvent: { roomId: 1 } };
RoomEvents['.Event_ListGames.ext'](data, event);
expect(RoomPersistence.updateGames).toHaveBeenCalledWith(
event.roomEvent.roomId,
data.gameList
);
});
it('.Event_RoomSay.ext should call RoomPersistence.addMessage', () => {
jest.spyOn(RoomPersistence, 'addMessage').mockImplementation(() => {});
const data: Message = {} as any;
const event: RoomEvent = { roomEvent: { roomId: 1 } };
RoomEvents['.Event_RoomSay.ext'](data, event);
expect(RoomPersistence.addMessage).toHaveBeenCalledWith(
event.roomEvent.roomId,
data
);
});
});

View File

@@ -4,10 +4,12 @@ import { joinRoom } from './joinRoom';
import { leaveRoom } from './leaveRoom';
import { listGames } from './listGames';
import { roomSay } from './roomSay';
import { removeMessages } from './removeMessage';
export const RoomEvents: ProtobufEvents = {
'.Event_JoinRoom.ext': joinRoom,
'.Event_LeaveRoom.ext': leaveRoom,
'.Event_ListGames.ext': listGames,
'.Event_RoomSay.ext': roomSay,
'.Event_RemoveMessages.ext': removeMessages,
};

View File

@@ -17,3 +17,8 @@ export interface LeaveRoomData {
export interface ListGamesData {
gameList: Game[];
}
export interface RemoveMessagesData {
amount: number;
name: string;
}

View File

@@ -0,0 +1,7 @@
import { RoomPersistence } from '../../persistence';
import { RemoveMessagesData, RoomEvent } from './interfaces';
export function removeMessages({ name }: RemoveMessagesData, { roomEvent }: RoomEvent) {
const { roomId } = roomEvent;
RoomPersistence.removeMessages(roomId, name);
}

View File

@@ -48,4 +48,8 @@ export class RoomPersistence {
static userLeft(roomId: number, name: string) {
RoomsDispatch.userLeft(roomId, name);
}
static removeMessages(roomId: number, name: string) {
console.log('removeMessages for ' + name + ' in room ' + roomId);
}
}