mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2025-12-05 20:39:59 -08:00
Add Event_RemoveMessages
This commit is contained in:
@@ -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
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -17,3 +17,8 @@ export interface LeaveRoomData {
|
||||
export interface ListGamesData {
|
||||
gameList: Game[];
|
||||
}
|
||||
|
||||
export interface RemoveMessagesData {
|
||||
amount: number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
7
webclient/src/websocket/events/room/removeMessage.ts
Normal file
7
webclient/src/websocket/events/room/removeMessage.ts
Normal 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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user