UNPKG

colyseus

Version:

Multiplayer Game Server for Node.js.

65 lines (50 loc) 2.33 kB
import * as assert from 'assert'; import { MatchMaker } from "../src/MatchMaker"; import { Room } from "../src/Room"; import { createDummyClient, DummyRoom } from "./utils/mock"; describe('MatchMaker', function() { let matchMaker; before(function() { matchMaker = new MatchMaker() matchMaker.addHandler('room', DummyRoom); matchMaker.addHandler('dummy_room', DummyRoom); }); describe('room handlers', function() { it('should add handler with name', function() { assert.equal(DummyRoom, matchMaker.handlers.room[0]); assert.equal(0, Object.keys(matchMaker.handlers.room[1]).length); assert.equal(false, matchMaker.hasAvailableRoom('room')); }); it('should create a new room on joinOrCreateByName', function() { var client = createDummyClient() var room = matchMaker.joinOrCreateByName(client, 'room', {}) assert.equal(0, room.roomId) assert.equal(1, Object.keys(matchMaker.roomsById).length) }); it('shouldn\'t return when trying to join with invalid room id', function() { var client = createDummyClient() assert.equal(matchMaker.joinById(client, 100), undefined); }); it('shouldn\'t create room when trying to join room with invalid params', function() { var client = createDummyClient() var room = matchMaker.joinOrCreateByName(client, 'dummy_room', {invalid_param: 10}) assert.equal(room, null) }); it('should throw error when trying to join existing room by id with invalid params', function() { var client1 = createDummyClient() var client2 = createDummyClient() var room = matchMaker.joinOrCreateByName(client1, 'room', {}) assert.equal(matchMaker.joinById(client2, room.roomId, { invalid_param: 1 }), undefined); }); it('should join existing room on joinById', function() { assert.equal(false, matchMaker.hasAvailableRoom('dummy_room')) var client1 = createDummyClient() var client2 = createDummyClient() var room = matchMaker.joinOrCreateByName(client1, 'dummy_room', {}) var joiningRoom = matchMaker.joinById(client2, room.roomId, {}) assert.equal(true, matchMaker.hasAvailableRoom('dummy_room')) assert.equal('dummy_room', room.roomName) assert.equal(room.roomId, joiningRoom.roomId) }); }); });