nodito
Version:
Una librería para aprender juegos por turnos en node.
99 lines • 3.83 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const ClientMessageFactory_1 = require("../from-client/ClientMessageFactory");
const Game_1 = require("../Game");
const Player_1 = require("../Player");
const Room_1 = require("../Room");
const RoomManager_1 = require("../RoomManager");
const UserManager_1 = require("../UserManager");
const dictMaker = { generic: Room_1.Room };
const genericMaker = { generic: Player_1.Player };
test("game creation", () => {
const playerManager = new UserManager_1.UserManager();
const roomsManager = new RoomManager_1.RoomManager(dictMaker, genericMaker);
const factory = new ClientMessageFactory_1.ClientMessageFactory();
const game = new Game_1.Game(playerManager, roomsManager, factory, "xxx");
game.findOrCreate("pepe");
expect(playerManager.count()).toBe(1);
game.findOrCreate("pepe");
expect(playerManager.count()).toBe(1);
game.findOrCreate("jorge");
expect(playerManager.count()).toBe(2);
});
test("game auth messages", () => {
const playerManager = new UserManager_1.UserManager();
const roomsManager = new RoomManager_1.RoomManager(dictMaker, genericMaker);
const factory = new ClientMessageFactory_1.ClientMessageFactory();
const game = new Game_1.Game(playerManager, roomsManager, factory, "xxx");
const pepe = game.findOrCreate("pepe");
expect(game.exec({
clientId: pepe.getId(),
gameType: "generic",
maxPlayers: 2,
token: pepe.getToken(),
type: "createRoom",
})).toBe(true);
expect(game.exec({
clientId: pepe.getId(),
gameType: "generic",
token: "jos",
type: "createRoom",
})).toBe(false);
});
test("create room length", () => {
const playerManager = new UserManager_1.UserManager();
const roomsManager = new RoomManager_1.RoomManager(dictMaker, genericMaker);
const factory = new ClientMessageFactory_1.ClientMessageFactory();
const game = new Game_1.Game(playerManager, roomsManager, factory, "xxx");
const pepe = game.findOrCreate("pepe");
const jorge = game.findOrCreate("jorge");
expect(game.exec({
clientId: pepe.getId(),
gameType: "generic",
maxPlayers: 2,
token: pepe.getToken(),
type: "createRoom",
})).toBe(true);
expect(game.exec({
clientId: jorge.getId(),
gameType: "generic",
maxPlayers: 2,
token: jorge.getToken(),
type: "createRoom",
})).toBe(true);
expect(roomsManager.count()).toBe(2);
});
test("join room then start game", () => {
const sentToClient = jest.fn();
const playerManager = new UserManager_1.UserManager(sentToClient);
const roomsManager = new RoomManager_1.RoomManager(dictMaker, genericMaker);
const factory = new ClientMessageFactory_1.ClientMessageFactory();
const game = new Game_1.Game(playerManager, roomsManager, factory, "xxx");
const pepe = game.findOrCreate("pepe");
const jorge = game.findOrCreate("jorge");
expect(game.exec({
clientId: pepe.getId(),
gameType: "generic",
maxPlayers: 2,
token: pepe.getToken(),
type: "createRoom",
})).toBe(true);
expect(game.exec({
clientId: jorge.getId(),
gameType: "generic",
maxPlayers: 2,
token: jorge.getToken(),
type: "joinRoom",
})).toBe(true);
expect(roomsManager.count()).toBe(1);
expect(sentToClient).toHaveBeenCalledTimes(3);
expect(game.exec({
clientId: jorge.getId(),
maxPlayers: 2,
roomId: roomsManager.findByPlayer(pepe).getId(),
token: jorge.getToken(),
type: "joinRoom",
})).toBe(true);
expect(sentToClient).toHaveBeenCalledWith(jorge.getId(), { type: "startGame" });
});
//# sourceMappingURL=game.test.js.map