Skip to content

Commit 791059e

Browse files
committed
fix tests
1 parent 7ccc33c commit 791059e

File tree

2 files changed

+68
-2
lines changed

2 files changed

+68
-2
lines changed
Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,84 @@
11
import { Test, TestingModule } from '@nestjs/testing';
22
import { GameEventsGateway } from './game-events.gateway';
3+
import { Events } from '@/events/events';
4+
import { Socket } from 'socket.io';
5+
import { GameState } from '../models/game-state';
6+
import { Game } from '../models/game';
7+
import { GameEventType } from '../models/game-event-type';
8+
import { Types } from 'mongoose';
9+
import { PlayerId } from '@/players/types/player-id';
10+
import { waitABit } from '@/utils/wait-a-bit';
11+
import { WebsocketEvent } from '@/websocket-event';
312

413
describe('GameEventsGateway', () => {
514
let gateway: GameEventsGateway;
15+
let events: Events;
16+
let socket: jest.Mocked<Socket>;
617

718
beforeEach(async () => {
819
const module: TestingModule = await Test.createTestingModule({
9-
providers: [GameEventsGateway],
20+
providers: [GameEventsGateway, Events],
1021
}).compile();
1122

1223
gateway = module.get<GameEventsGateway>(GameEventsGateway);
24+
events = module.get(Events);
25+
});
26+
27+
beforeEach(() => {
28+
socket = {
29+
to: jest.fn().mockReturnThis(),
30+
emit: jest.fn(),
31+
} as unknown as jest.Mocked<Socket>;
32+
33+
gateway.onModuleInit();
34+
gateway.afterInit(socket);
1335
});
1436

1537
it('should be defined', () => {
1638
expect(gateway).toBeDefined();
1739
});
40+
41+
describe('when game events change', () => {
42+
beforeEach(async () => {
43+
const slotId = new Types.ObjectId();
44+
const player1 = new Types.ObjectId() as PlayerId;
45+
46+
const oldGame = {
47+
number: 1,
48+
state: GameState.launching,
49+
events: [
50+
{
51+
event: GameEventType.gameCreated,
52+
at: new Date(),
53+
},
54+
],
55+
} as Game;
56+
57+
const newGame = {
58+
number: 1,
59+
state: GameState.launching,
60+
events: [
61+
{
62+
event: GameEventType.gameCreated,
63+
at: new Date(),
64+
},
65+
{
66+
event: GameEventType.gameEnded,
67+
at: new Date(),
68+
},
69+
],
70+
} as Game;
71+
72+
events.gameChanges.next({ oldGame, newGame });
73+
await waitABit(100);
74+
});
75+
76+
it('should emit', () => {
77+
expect(socket.to).toHaveBeenCalledWith('/games/1/events');
78+
expect(socket.emit).toHaveBeenCalledWith(
79+
WebsocketEvent.gameEventsUpdated,
80+
expect.any(Object),
81+
);
82+
});
83+
});
1884
});

src/games/gateways/game-slots.gateway.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ describe('GameSlotsGateway', () => {
8181
});
8282

8383
it('should emit', () => {
84-
expect(socket.to).toHaveBeenCalledWith('game/1');
84+
expect(socket.to).toHaveBeenCalledWith('/games/1/slots');
8585
expect(socket.emit).toHaveBeenCalledWith(
8686
WebsocketEvent.gameSlotsUpdated,
8787
expect.any(Object),

0 commit comments

Comments
 (0)