Spaces:
Paused
Paused
File size: 1,639 Bytes
e3cb794 a18eb38 e3cb794 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 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();
})
});
|