강동현

createRoom 테스트 작성

1 +import { expect } from "chai";
2 +import { RoomManager } from "../room/RoomManager";
3 +import {
4 + prepareJoinedRoom,
5 + prepareUsers,
6 + prepareUsersEmptyRooms,
7 +} from "./util/prepare";
8 +import { SocketTester } from "./util/SocketTester";
9 +
10 +describe("방 생성", () => {
11 + it("로그인하지 않은 유저는 요청할 수 없습니다", () => {
12 + const roomManager = new RoomManager();
13 + const socket = new SocketTester(roomManager);
14 + socket.testNotOk("createRoom", { name: "테스트" });
15 + });
16 + it("방을 생성합니다", () => {
17 + const {
18 + sockets: [socket],
19 + users: [user],
20 + } = prepareUsers(1);
21 +
22 + const response = socket.test("createRoom", { name: "테스트" });
23 + expect(response.ok).eq(true);
24 + expect(response.result?.name).eq("테스트");
25 + expect(response.result?.users?.length).eq(1);
26 + expect(response.result?.users[0]?.username).eq(user.username);
27 + });
28 + it("방을 생성하면 방장이 됩니다", () => {
29 + const {
30 + sockets: [socket],
31 + } = prepareUsers(1);
32 +
33 + const response = socket.test("createRoom", { name: "테스트" });
34 + expect(response.ok).eq(true);
35 + expect(response.result?.users[0]?.admin).eq(true);
36 + });
37 + it("방의 이름은 공백이 될 수 없습니다", () => {
38 + const {
39 + sockets: [socket],
40 + } = prepareUsers(1);
41 +
42 + socket.testNotOk("createRoom", { name: "" });
43 + socket.testNotOk("createRoom", { name: " " });
44 + });
45 + it("방의 이름은 30자보다 길 수 없습니다", () => {
46 + const {
47 + sockets: [socket],
48 + } = prepareUsers(1);
49 +
50 + socket.testNotOk("createRoom", { name: "a".repeat(31) });
51 + socket.testNotOk("createRoom", { name: "가".repeat(31) });
52 + });
53 + it("방에 이미 접속한 상태에서 방을 만들 수 없습니다", () => {
54 + const {
55 + sockets: [socket],
56 + } = prepareJoinedRoom(1);
57 +
58 + socket.testNotOk("createRoom", { name: "테스트" });
59 + });
60 +});