Spaces:
Sleeping
Sleeping
| 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(); | |
| }) | |
| }); | |