Gravwell-Online/server/tests/objects/Player.spec.ts
2022-06-23 14:05:34 -06:00

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);
});
});