UNPKG

nodito

Version:

Una librería para aprender juegos por turnos en node.

99 lines 3.83 kB
"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