avallef's picture
Added unit/mock testing
a18eb38
import { expect } from "chai";
import { User } from "../../src/socket/hapticLinkServer";
import { Room } from "../../src/socket/room";
import {WebSocketWrapper} from "./hapticLinkServer.spec";
describe("Rooms", function() {
const ws1 = new WebSocketWrapper();
const ws2 = new WebSocketWrapper();
const user1: User = new User(ws1);
const user2: User = new User(ws2);
const room: Room = new Room()
before((done) => {
done();
})
after(() => {
})
it("should have a unique random ID", (done) => {
expect(room.id.length).to.gte(3, "ID not generated")
done();
})
it("should add/remove user", (done) => {
room.addUser(user1)
room.addUser(user1)
expect(room.users.length).to.equal(1, "user not added")
room.removeUserById(user1.id);
expect(room.users.length).to.equal(0, "user not removed")
done();
})
it("should check if user exists", (done) => {
room.addUser(user1)
expect(room.hasUser(user1.id)).to.equal(true, "room didn't find user")
done();
})
it("should broadcast to all users", (done) => {
room.addUser(user1)
room.addUser(user2)
room.broadcast("hello");
expect(ws1.sendData).to.equal("hello", "didn't broadcast")
expect(ws2.sendData).to.equal("hello", "didn't broadcast")
done();
})
it("should broadcast to all users, but filter a user", (done) => {
ws1.sendData = ""
ws2.sendData = ""
room.addUser(user1)
room.addUser(user2)
room.broadcast("hello", [user1.id]);
expect(ws1.sendData).to.equal("", "didn't filter")
expect(ws2.sendData).to.equal("hello", "didn't broadcast")
done();
})
});