Add tests for the Player object
This commit is contained in:
parent
abba594522
commit
a4aa70f992
1 changed files with 82 additions and 0 deletions
82
server/tests/objects/Player.spec.ts
Normal file
82
server/tests/objects/Player.spec.ts
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
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);
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue