82 lines
No EOL
1.8 KiB
TypeScript
82 lines
No EOL
1.8 KiB
TypeScript
import { Socket } from "socket.io";
|
|
import { expect } from "chai";
|
|
import "mocha";
|
|
|
|
import { Player } from "../../src/objects/Player";
|
|
import { colours, spaceships } from "common";
|
|
|
|
describe("The player object", () => {
|
|
it("should construct properly", () => {
|
|
const data = {
|
|
name: "Oliver",
|
|
ship: spaceships[0],
|
|
colour: colours[0],
|
|
host: false,
|
|
}
|
|
const p = new Player(
|
|
{ connected: true } as Socket,
|
|
data
|
|
);
|
|
|
|
expect(p.socket.connected).to.be.true;
|
|
expect(p.colour).to.equal(data.colour);
|
|
expect(p.ship).to.equal(data.ship);
|
|
expect(p.name).to.equal(data.name);
|
|
expect(p.host).to.equal(data.host);
|
|
});
|
|
|
|
it("shouldn't let socket be assigned when connected", () => {
|
|
const p = new Player(
|
|
{ connected: true } as Socket,
|
|
{
|
|
name: "Oliver",
|
|
ship: spaceships[0],
|
|
colour: colours[0],
|
|
host: false,
|
|
}
|
|
);
|
|
|
|
try {
|
|
p.socket = { connected : true } as Socket;
|
|
throw "Assigned socket when it was connected"
|
|
} catch (e) {};
|
|
});
|
|
|
|
it("should let socket be assigned when not connected", () => {
|
|
const p = new Player(
|
|
{ connected: false } as Socket,
|
|
{
|
|
name: "Oliver",
|
|
ship: spaceships[0],
|
|
colour: colours[0],
|
|
host: false,
|
|
}
|
|
);
|
|
|
|
try {
|
|
p.socket = { connected : true } as Socket;
|
|
} catch (e) {
|
|
throw "Didn't let socket be set when it wasn't connected"
|
|
};
|
|
});
|
|
|
|
it("should construct the data object correctly", () => {
|
|
let data = {
|
|
name: "Oliver",
|
|
ship: spaceships[0],
|
|
colour: colours[0],
|
|
host: false,
|
|
};
|
|
const p = new Player(
|
|
{ connected: false } as Socket,
|
|
data
|
|
);
|
|
|
|
let j = p.json();
|
|
expect(j).to.have.keys(`name`, `ship`, `colour`, `host`);
|
|
expect(j.colour).to.equal(data.colour);
|
|
expect(j.ship).to.equal(data.ship);
|
|
expect(j.name).to.equal(data.name);
|
|
expect(j.host).to.equal(data.host);
|
|
});
|
|
}); |