Showing
17 changed files
with
193 additions
and
29 deletions
... | @@ -186,9 +186,16 @@ export class Game { | ... | @@ -186,9 +186,16 @@ export class Game { |
186 | }, this.roundTerm * 1000); | 186 | }, this.roundTerm * 1000); |
187 | } | 187 | } |
188 | 188 | ||
189 | - private finishGame(): void { | 189 | + public finishGame(): void { |
190 | this.room.broadcast("finishGame", {}); | 190 | this.room.broadcast("finishGame", {}); |
191 | 191 | ||
192 | + if (this.timeoutTimerId) { | ||
193 | + clearTimeout(this.timeoutTimerId); | ||
194 | + } | ||
195 | + if (this.nextRoundTimerId) { | ||
196 | + clearTimeout(this.nextRoundTimerId); | ||
197 | + } | ||
198 | + | ||
192 | this.room.finishGame(); | 199 | this.room.finishGame(); |
193 | } | 200 | } |
194 | 201 | ... | ... |
... | @@ -18,7 +18,7 @@ | ... | @@ -18,7 +18,7 @@ |
18 | }, | 18 | }, |
19 | "scripts": { | 19 | "scripts": { |
20 | "start": "nodemon index.ts", | 20 | "start": "nodemon index.ts", |
21 | - "test": "nyc mocha -r ts-node/register --timeout 8000 ./**/*.test.ts", | 21 | + "test": "nyc mocha -r ts-node/register --timeout 800 ./**/*.test.ts", |
22 | "build": "tsc -b -v" | 22 | "build": "tsc -b -v" |
23 | }, | 23 | }, |
24 | "devDependencies": { | 24 | "devDependencies": { | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | import { RoomManager } from "../room/RoomManager"; | 2 | import { RoomManager } from "../room/RoomManager"; |
3 | +import { clear } from "./util/clear"; | ||
3 | import { prepareJoinedRoom, prepareUsers } from "./util/prepare"; | 4 | import { prepareJoinedRoom, prepareUsers } from "./util/prepare"; |
4 | import { SocketTester } from "./util/SocketTester"; | 5 | import { SocketTester } from "./util/SocketTester"; |
5 | 6 | ||
... | @@ -11,6 +12,8 @@ describe("방장", () => { | ... | @@ -11,6 +12,8 @@ describe("방장", () => { |
11 | } = prepareJoinedRoom(1); | 12 | } = prepareJoinedRoom(1); |
12 | 13 | ||
13 | expect(room.admin).eq(user); | 14 | expect(room.admin).eq(user); |
15 | + | ||
16 | + clear([room]); | ||
14 | }); | 17 | }); |
15 | it("나중에 들어온 유저는 방장 정보를 받지만 방장이 되지 않습니다", () => { | 18 | it("나중에 들어온 유저는 방장 정보를 받지만 방장이 되지 않습니다", () => { |
16 | const { | 19 | const { |
... | @@ -32,6 +35,8 @@ describe("방장", () => { | ... | @@ -32,6 +35,8 @@ describe("방장", () => { |
32 | expect(response.result?.users[1].nickname).eq(user2.nickname); | 35 | expect(response.result?.users[1].nickname).eq(user2.nickname); |
33 | expect(response.result?.users[1].admin).eq(false); | 36 | expect(response.result?.users[1].admin).eq(false); |
34 | expect(response.result?.users[1].ready).eq(false); | 37 | expect(response.result?.users[1].ready).eq(false); |
38 | + | ||
39 | + clear([room]); | ||
35 | }); | 40 | }); |
36 | it("방장이 나가면 방장이 인계됩니다", () => { | 41 | it("방장이 나가면 방장이 인계됩니다", () => { |
37 | const { | 42 | const { |
... | @@ -43,6 +48,8 @@ describe("방장", () => { | ... | @@ -43,6 +48,8 @@ describe("방장", () => { |
43 | expect(room.admin).eq(user1); | 48 | expect(room.admin).eq(user1); |
44 | socket1.testOk("leaveRoom", {}); | 49 | socket1.testOk("leaveRoom", {}); |
45 | expect(room.admin).eq(user2); | 50 | expect(room.admin).eq(user2); |
51 | + | ||
52 | + clear([room]); | ||
46 | }); | 53 | }); |
47 | it("방장을 인계하면 정보가 업데이트됩니다", () => { | 54 | it("방장을 인계하면 정보가 업데이트됩니다", () => { |
48 | const { | 55 | const { |
... | @@ -82,5 +89,7 @@ describe("방장", () => { | ... | @@ -82,5 +89,7 @@ describe("방장", () => { |
82 | expect(message.state).eq("updated"); | 89 | expect(message.state).eq("updated"); |
83 | expect(message.user.username).eq(user2.username); | 90 | expect(message.user.username).eq(user2.username); |
84 | expect(message.user.admin).eq(true); | 91 | expect(message.user.admin).eq(true); |
92 | + | ||
93 | + clear([room]); | ||
85 | }); | 94 | }); |
86 | }); | 95 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | import { RoomManager } from "../room/RoomManager"; | 2 | import { RoomManager } from "../room/RoomManager"; |
3 | +import { clear } from "./util/clear"; | ||
3 | import { DummySocket } from "./util/DummySocket"; | 4 | import { DummySocket } from "./util/DummySocket"; |
4 | import { | 5 | import { |
5 | prepareJoinedRoom, | 6 | prepareJoinedRoom, |
... | @@ -24,13 +25,16 @@ describe("채팅", () => { | ... | @@ -24,13 +25,16 @@ describe("채팅", () => { |
24 | it("채팅을 보냅니다", () => { | 25 | it("채팅을 보냅니다", () => { |
25 | const { | 26 | const { |
26 | sockets: [socket], | 27 | sockets: [socket], |
28 | + room, | ||
27 | } = prepareJoinedRoom(1); | 29 | } = prepareJoinedRoom(1); |
28 | socket.testOk("chat", { message: "Hello World" }); | 30 | socket.testOk("chat", { message: "Hello World" }); |
31 | + clear([room]); | ||
29 | }); | 32 | }); |
30 | it("모두가 채팅을 받습니다", () => { | 33 | it("모두가 채팅을 받습니다", () => { |
31 | const { | 34 | const { |
32 | sockets: [socket1, socket2], | 35 | sockets: [socket1, socket2], |
33 | users: [user1, user2], | 36 | users: [user1, user2], |
37 | + room, | ||
34 | } = prepareJoinedRoom(2); | 38 | } = prepareJoinedRoom(2); |
35 | 39 | ||
36 | socket1.testOk("chat", { message: "Hello World" }); | 40 | socket1.testOk("chat", { message: "Hello World" }); |
... | @@ -43,23 +47,31 @@ describe("채팅", () => { | ... | @@ -43,23 +47,31 @@ describe("채팅", () => { |
43 | message: "Hello World", | 47 | message: "Hello World", |
44 | sender: user1.nickname, | 48 | sender: user1.nickname, |
45 | }); | 49 | }); |
50 | + | ||
51 | + clear([room]); | ||
46 | }); | 52 | }); |
47 | it("빈 채팅은 보낼 수 없습니다", () => { | 53 | it("빈 채팅은 보낼 수 없습니다", () => { |
48 | const { | 54 | const { |
49 | sockets: [socket], | 55 | sockets: [socket], |
56 | + room, | ||
50 | } = prepareJoinedRoom(1); | 57 | } = prepareJoinedRoom(1); |
51 | 58 | ||
52 | expect(socket.test("chat", { message: "" }).ok).eq(false); | 59 | expect(socket.test("chat", { message: "" }).ok).eq(false); |
53 | expect(socket.test("chat", { message: " " }).ok).eq(false); | 60 | expect(socket.test("chat", { message: " " }).ok).eq(false); |
61 | + | ||
62 | + clear([room]); | ||
54 | }); | 63 | }); |
55 | it("글자수가 300자를 넘는 채팅은 보낼 수 없습니다", () => { | 64 | it("글자수가 300자를 넘는 채팅은 보낼 수 없습니다", () => { |
56 | const { | 65 | const { |
57 | sockets: [socket], | 66 | sockets: [socket], |
67 | + room, | ||
58 | } = prepareJoinedRoom(1); | 68 | } = prepareJoinedRoom(1); |
59 | 69 | ||
60 | expect(socket.test("chat", { message: "A".repeat(300) }).ok).eq(true); | 70 | expect(socket.test("chat", { message: "A".repeat(300) }).ok).eq(true); |
61 | expect(socket.test("chat", { message: "A".repeat(301) }).ok).eq(false); | 71 | expect(socket.test("chat", { message: "A".repeat(301) }).ok).eq(false); |
62 | expect(socket.test("chat", { message: "가".repeat(300) }).ok).eq(true); | 72 | expect(socket.test("chat", { message: "가".repeat(300) }).ok).eq(true); |
63 | expect(socket.test("chat", { message: "가".repeat(301) }).ok).eq(false); | 73 | expect(socket.test("chat", { message: "가".repeat(301) }).ok).eq(false); |
74 | + | ||
75 | + clear([room]); | ||
64 | }); | 76 | }); |
65 | }); | 77 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | +import { clear } from "./util/clear"; | ||
2 | import { prepareGame } from "./util/prepare"; | 3 | import { prepareGame } from "./util/prepare"; |
3 | 4 | ||
4 | describe("라운드 단어 선택", () => { | 5 | describe("라운드 단어 선택", () => { |
5 | it("drawer가 단어를 선택하면 wordChosen과 timer를 받습니다", () => { | 6 | it("drawer가 단어를 선택하면 wordChosen과 timer를 받습니다", () => { |
6 | - const { drawerSocket, guesserSockets } = prepareGame(2); | 7 | + const { drawerSocket, guesserSockets, room } = prepareGame(2); |
7 | 8 | ||
8 | const word = drawerSocket.socket.received("wordSet").words[0]; | 9 | const word = drawerSocket.socket.received("wordSet").words[0]; |
9 | drawerSocket.testOk("chooseWord", { word }); | 10 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -14,24 +15,32 @@ describe("라운드 단어 선택", () => { | ... | @@ -14,24 +15,32 @@ describe("라운드 단어 선택", () => { |
14 | word.length | 15 | word.length |
15 | ); | 16 | ); |
16 | guesserSockets[0].socket.received("timer"); | 17 | guesserSockets[0].socket.received("timer"); |
18 | + | ||
19 | + clear([room]); | ||
17 | }); | 20 | }); |
18 | it("drawer가 아닌 다른 사람들은 단어를 선택할 수 없습니다", () => { | 21 | it("drawer가 아닌 다른 사람들은 단어를 선택할 수 없습니다", () => { |
19 | - const { drawerSocket, guesserSockets } = prepareGame(2); | 22 | + const { drawerSocket, guesserSockets, room } = prepareGame(2); |
20 | 23 | ||
21 | const word = drawerSocket.socket.received("wordSet").words[0]; | 24 | const word = drawerSocket.socket.received("wordSet").words[0]; |
22 | 25 | ||
23 | guesserSockets[0].testNotOk("chooseWord", { word }); | 26 | guesserSockets[0].testNotOk("chooseWord", { word }); |
27 | + | ||
28 | + clear([room]); | ||
24 | }); | 29 | }); |
25 | it("단어를 이미 고른 상태에서 다시 고를 수 없습니다", () => { | 30 | it("단어를 이미 고른 상태에서 다시 고를 수 없습니다", () => { |
26 | - const { drawerSocket } = prepareGame(2); | 31 | + const { drawerSocket, room } = prepareGame(2); |
27 | 32 | ||
28 | const word = drawerSocket.socket.received("wordSet").words[0]; | 33 | const word = drawerSocket.socket.received("wordSet").words[0]; |
29 | drawerSocket.testOk("chooseWord", { word }); | 34 | drawerSocket.testOk("chooseWord", { word }); |
30 | drawerSocket.testNotOk("chooseWord", { word }); | 35 | drawerSocket.testNotOk("chooseWord", { word }); |
36 | + | ||
37 | + clear([room]); | ||
31 | }); | 38 | }); |
32 | it("목록에 없는 단어를 고를 수 없습니다", () => { | 39 | it("목록에 없는 단어를 고를 수 없습니다", () => { |
33 | - const { drawerSocket } = prepareGame(2); | 40 | + const { drawerSocket, room } = prepareGame(2); |
34 | 41 | ||
35 | drawerSocket.testNotOk("chooseWord", { word: "Nope!" }); | 42 | drawerSocket.testNotOk("chooseWord", { word: "Nope!" }); |
43 | + | ||
44 | + clear([room]); | ||
36 | }); | 45 | }); |
37 | }); | 46 | }); | ... | ... |
... | @@ -17,6 +17,7 @@ describe("방 생성", () => { | ... | @@ -17,6 +17,7 @@ describe("방 생성", () => { |
17 | const { | 17 | const { |
18 | sockets: [socket], | 18 | sockets: [socket], |
19 | users: [user], | 19 | users: [user], |
20 | + roomManager, | ||
20 | } = prepareUsers(1); | 21 | } = prepareUsers(1); |
21 | 22 | ||
22 | const response = socket.test("createRoom", { name: "테스트" }); | 23 | const response = socket.test("createRoom", { name: "테스트" }); |
... | @@ -24,15 +25,20 @@ describe("방 생성", () => { | ... | @@ -24,15 +25,20 @@ describe("방 생성", () => { |
24 | expect(response.result?.name).eq("테스트"); | 25 | expect(response.result?.name).eq("테스트"); |
25 | expect(response.result?.users?.length).eq(1); | 26 | expect(response.result?.users?.length).eq(1); |
26 | expect(response.result?.users[0]?.username).eq(user.username); | 27 | expect(response.result?.users[0]?.username).eq(user.username); |
28 | + | ||
29 | + roomManager.clear(); | ||
27 | }); | 30 | }); |
28 | it("방을 생성하면 방장이 됩니다", () => { | 31 | it("방을 생성하면 방장이 됩니다", () => { |
29 | const { | 32 | const { |
30 | sockets: [socket], | 33 | sockets: [socket], |
34 | + roomManager, | ||
31 | } = prepareUsers(1); | 35 | } = prepareUsers(1); |
32 | 36 | ||
33 | const response = socket.test("createRoom", { name: "테스트" }); | 37 | const response = socket.test("createRoom", { name: "테스트" }); |
34 | expect(response.ok).eq(true); | 38 | expect(response.ok).eq(true); |
35 | expect(response.result?.users[0]?.admin).eq(true); | 39 | expect(response.result?.users[0]?.admin).eq(true); |
40 | + | ||
41 | + roomManager.clear(); | ||
36 | }); | 42 | }); |
37 | it("방의 이름은 공백이 될 수 없습니다", () => { | 43 | it("방의 이름은 공백이 될 수 없습니다", () => { |
38 | const { | 44 | const { | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | import { RoomManager } from "../room/RoomManager"; | 2 | import { RoomManager } from "../room/RoomManager"; |
3 | +import { clear } from "./util/clear"; | ||
3 | import { DummySocket } from "./util/DummySocket"; | 4 | import { DummySocket } from "./util/DummySocket"; |
4 | import { prepareJoinedRoom, prepareUsersEmptyRooms } from "./util/prepare"; | 5 | import { prepareJoinedRoom, prepareUsersEmptyRooms } from "./util/prepare"; |
5 | import { SocketTester } from "./util/SocketTester"; | 6 | import { SocketTester } from "./util/SocketTester"; |
... | @@ -10,6 +11,8 @@ describe("방 입장", () => { | ... | @@ -10,6 +11,8 @@ describe("방 입장", () => { |
10 | const socket = new SocketTester(roomManager); | 11 | const socket = new SocketTester(roomManager); |
11 | const room = roomManager.create("테스트", 2); | 12 | const room = roomManager.create("테스트", 2); |
12 | socket.testNotOk("joinRoom", { uuid: room.uuid }); | 13 | socket.testNotOk("joinRoom", { uuid: room.uuid }); |
14 | + | ||
15 | + clear([room]); | ||
13 | }); | 16 | }); |
14 | it("방에 입장합니다", () => { | 17 | it("방에 입장합니다", () => { |
15 | const { | 18 | const { |
... | @@ -25,16 +28,21 @@ describe("방 입장", () => { | ... | @@ -25,16 +28,21 @@ describe("방 입장", () => { |
25 | expect(response.result?.maxUsers).eq(room.maxUsers); | 28 | expect(response.result?.maxUsers).eq(room.maxUsers); |
26 | expect(response.result?.users?.length).eq(1); | 29 | expect(response.result?.users?.length).eq(1); |
27 | expect(response.result?.users[0]?.nickname).eq(user.nickname); | 30 | expect(response.result?.users[0]?.nickname).eq(user.nickname); |
31 | + | ||
32 | + clear([room]); | ||
28 | }); | 33 | }); |
29 | it("방에 입장하면 유저 목록이 업데이트 됩니다", () => { | 34 | it("방에 입장하면 유저 목록이 업데이트 됩니다", () => { |
30 | const { | 35 | const { |
31 | sockets: [socket1, socket2], | 36 | sockets: [socket1, socket2], |
32 | users: [user1, user2], | 37 | users: [user1, user2], |
38 | + room, | ||
33 | } = prepareJoinedRoom(2); | 39 | } = prepareJoinedRoom(2); |
34 | 40 | ||
35 | const updated = socket1.socket.received("updateRoomUser"); | 41 | const updated = socket1.socket.received("updateRoomUser"); |
36 | expect(updated.state).eq("added"); | 42 | expect(updated.state).eq("added"); |
37 | expect(updated.user.nickname).eq(user2.nickname); | 43 | expect(updated.user.nickname).eq(user2.nickname); |
44 | + | ||
45 | + clear([room]); | ||
38 | }); | 46 | }); |
39 | it("방에 이미 입장한 상태에서 다른 방에 입장할 수 없습니다", () => { | 47 | it("방에 이미 입장한 상태에서 다른 방에 입장할 수 없습니다", () => { |
40 | const { | 48 | const { |
... | @@ -44,6 +52,8 @@ describe("방 입장", () => { | ... | @@ -44,6 +52,8 @@ describe("방 입장", () => { |
44 | 52 | ||
45 | socket.testOk("joinRoom", { uuid: room1.uuid }); | 53 | socket.testOk("joinRoom", { uuid: room1.uuid }); |
46 | socket.testNotOk("joinRoom", { uuid: room2.uuid }); | 54 | socket.testNotOk("joinRoom", { uuid: room2.uuid }); |
55 | + | ||
56 | + clear([room1, room2]); | ||
47 | }); | 57 | }); |
48 | it("가득 찬 방에는 입장할 수 없습니다", () => { | 58 | it("가득 찬 방에는 입장할 수 없습니다", () => { |
49 | const { | 59 | const { |
... | @@ -53,5 +63,7 @@ describe("방 입장", () => { | ... | @@ -53,5 +63,7 @@ describe("방 입장", () => { |
53 | 63 | ||
54 | socket1.testOk("joinRoom", { uuid: room.uuid }); | 64 | socket1.testOk("joinRoom", { uuid: room.uuid }); |
55 | socket2.testNotOk("joinRoom", { uuid: room.uuid }); | 65 | socket2.testNotOk("joinRoom", { uuid: room.uuid }); |
66 | + | ||
67 | + clear([room]); | ||
56 | }); | 68 | }); |
57 | }); | 69 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | import { RoomManager } from "../room/RoomManager"; | 2 | import { RoomManager } from "../room/RoomManager"; |
3 | import { User } from "../user/User"; | 3 | import { User } from "../user/User"; |
4 | +import { clear } from "./util/clear"; | ||
4 | import { DummySocket } from "./util/DummySocket"; | 5 | import { DummySocket } from "./util/DummySocket"; |
5 | import { prepareJoinedRoom, prepareUsers } from "./util/prepare"; | 6 | import { prepareJoinedRoom, prepareUsers } from "./util/prepare"; |
6 | import { SocketTester } from "./util/SocketTester"; | 7 | import { SocketTester } from "./util/SocketTester"; |
... | @@ -27,25 +28,33 @@ describe("방 퇴장", () => { | ... | @@ -27,25 +28,33 @@ describe("방 퇴장", () => { |
27 | expect(room.users.length).eq(1); | 28 | expect(room.users.length).eq(1); |
28 | socket.testOk("leaveRoom", {}); | 29 | socket.testOk("leaveRoom", {}); |
29 | expect(room.users.length).eq(0); | 30 | expect(room.users.length).eq(0); |
31 | + | ||
32 | + clear([room]); | ||
30 | }); | 33 | }); |
31 | it("방에서 퇴장한 뒤 다시 요청을 보낼 수 없습니다", () => { | 34 | it("방에서 퇴장한 뒤 다시 요청을 보낼 수 없습니다", () => { |
32 | const { | 35 | const { |
33 | sockets: [socket], | 36 | sockets: [socket], |
37 | + room, | ||
34 | } = prepareJoinedRoom(1); | 38 | } = prepareJoinedRoom(1); |
35 | 39 | ||
36 | socket.testOk("leaveRoom", {}); | 40 | socket.testOk("leaveRoom", {}); |
37 | socket.testNotOk("leaveRoom", {}); | 41 | socket.testNotOk("leaveRoom", {}); |
42 | + | ||
43 | + clear([room]); | ||
38 | }); | 44 | }); |
39 | it("방에서 퇴장하면 유저 목록이 업데이트 됩니다", () => { | 45 | it("방에서 퇴장하면 유저 목록이 업데이트 됩니다", () => { |
40 | const { | 46 | const { |
41 | sockets: [socket1, socket2], | 47 | sockets: [socket1, socket2], |
42 | users: [user1, user2], | 48 | users: [user1, user2], |
49 | + room, | ||
43 | } = prepareJoinedRoom(2); | 50 | } = prepareJoinedRoom(2); |
44 | 51 | ||
45 | socket1.testOk("leaveRoom", {}); | 52 | socket1.testOk("leaveRoom", {}); |
46 | const updated = socket2.socket.received("updateRoomUser"); | 53 | const updated = socket2.socket.received("updateRoomUser"); |
47 | expect(updated.state).eq("removed"); | 54 | expect(updated.state).eq("removed"); |
48 | expect(updated.user.username).eq(user1.username); | 55 | expect(updated.user.username).eq(user1.username); |
56 | + | ||
57 | + clear([room]); | ||
49 | }); | 58 | }); |
50 | it("방에서 퇴장한 뒤 아무도 없으면 방이 닫힙니다", () => { | 59 | it("방에서 퇴장한 뒤 아무도 없으면 방이 닫힙니다", () => { |
51 | const { | 60 | const { |
... | @@ -56,5 +65,7 @@ describe("방 퇴장", () => { | ... | @@ -56,5 +65,7 @@ describe("방 퇴장", () => { |
56 | expect(room.closed).eq(false); | 65 | expect(room.closed).eq(false); |
57 | expect(socket.test("leaveRoom", {}).ok).eq(true); | 66 | expect(socket.test("leaveRoom", {}).ok).eq(true); |
58 | expect(room.closed).eq(true); | 67 | expect(room.closed).eq(true); |
68 | + | ||
69 | + clear([room]); | ||
59 | }); | 70 | }); |
60 | }); | 71 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | +import { clear } from "./util/clear"; | ||
2 | import { prepareGame } from "./util/prepare"; | 3 | import { prepareGame } from "./util/prepare"; |
3 | 4 | ||
4 | describe("라운드 브러시 이동", () => { | 5 | describe("라운드 브러시 이동", () => { |
5 | it("drawer가 브러시를 이동하면 다른 사람들이 설정을 받습니다", () => { | 6 | it("drawer가 브러시를 이동하면 다른 사람들이 설정을 받습니다", () => { |
6 | - const { drawerSocket, guesserSockets } = prepareGame(2); | 7 | + const { drawerSocket, guesserSockets, room } = prepareGame(2); |
7 | 8 | ||
8 | const brushCoord = { x: 0, y: 0 }; | 9 | const brushCoord = { x: 0, y: 0 }; |
9 | drawerSocket.testOk("moveBrush", brushCoord); | 10 | drawerSocket.testOk("moveBrush", brushCoord); |
10 | expect(guesserSockets[0].socket.received("moveBrush")).deep.eq(brushCoord); | 11 | expect(guesserSockets[0].socket.received("moveBrush")).deep.eq(brushCoord); |
12 | + | ||
13 | + clear([room]); | ||
11 | }); | 14 | }); |
12 | it("영역을 벗어난 좌표는 Clamp 처리됩니다", () => { | 15 | it("영역을 벗어난 좌표는 Clamp 처리됩니다", () => { |
13 | - const { drawerSocket, guesserSockets } = prepareGame(2); | 16 | + const { drawerSocket, guesserSockets, room } = prepareGame(2); |
14 | 17 | ||
15 | drawerSocket.testOk("moveBrush", { x: -1, y: 1000 }); | 18 | drawerSocket.testOk("moveBrush", { x: -1, y: 1000 }); |
16 | expect(guesserSockets[0].socket.received("moveBrush")).deep.eq({ | 19 | expect(guesserSockets[0].socket.received("moveBrush")).deep.eq({ |
17 | x: 0, | 20 | x: 0, |
18 | y: 480, | 21 | y: 480, |
19 | }); | 22 | }); |
23 | + | ||
24 | + clear([room]); | ||
20 | }); | 25 | }); |
21 | it("drawer가 아닌 다른 사람들은 브러시를 이동할 수 없습니다", () => { | 26 | it("drawer가 아닌 다른 사람들은 브러시를 이동할 수 없습니다", () => { |
22 | - const { guesserSockets } = prepareGame(2); | 27 | + const { guesserSockets, room } = prepareGame(2); |
23 | 28 | ||
24 | const brushCoord = { x: 0, y: 0 }; | 29 | const brushCoord = { x: 0, y: 0 }; |
25 | guesserSockets[0].testNotOk("moveBrush", brushCoord); | 30 | guesserSockets[0].testNotOk("moveBrush", brushCoord); |
31 | + | ||
32 | + clear([room]); | ||
26 | }); | 33 | }); |
27 | }); | 34 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | import { RoomManager } from "../room/RoomManager"; | 2 | import { RoomManager } from "../room/RoomManager"; |
3 | +import { clear } from "./util/clear"; | ||
3 | import { prepareJoinedRoom, prepareUsersEmptyRooms } from "./util/prepare"; | 4 | import { prepareJoinedRoom, prepareUsersEmptyRooms } from "./util/prepare"; |
4 | import { SocketTester } from "./util/SocketTester"; | 5 | import { SocketTester } from "./util/SocketTester"; |
5 | 6 | ||
... | @@ -15,6 +16,8 @@ describe("준비", () => { | ... | @@ -15,6 +16,8 @@ describe("준비", () => { |
15 | expect(response.ok).eq(true); | 16 | expect(response.ok).eq(true); |
16 | expect(response.result?.users[0]?.nickname).eq(user.nickname); | 17 | expect(response.result?.users[0]?.nickname).eq(user.nickname); |
17 | expect(response.result?.users[0]?.ready).eq(false); | 18 | expect(response.result?.users[0]?.ready).eq(false); |
19 | + | ||
20 | + clear([room]); | ||
18 | }); | 21 | }); |
19 | it("준비 상태를 설정합니다", () => { | 22 | it("준비 상태를 설정합니다", () => { |
20 | const { | 23 | const { |
... | @@ -40,6 +43,8 @@ describe("준비", () => { | ... | @@ -40,6 +43,8 @@ describe("준비", () => { |
40 | expect(response.state).eq("updated"); | 43 | expect(response.state).eq("updated"); |
41 | expect(response.user.nickname).eq(user.nickname); | 44 | expect(response.user.nickname).eq(user.nickname); |
42 | expect(response.user.ready).eq(false); | 45 | expect(response.user.ready).eq(false); |
46 | + | ||
47 | + clear([room]); | ||
43 | }); | 48 | }); |
44 | it("방장은 준비할 수 없습니다", () => { | 49 | it("방장은 준비할 수 없습니다", () => { |
45 | const { | 50 | const { |
... | @@ -50,6 +55,8 @@ describe("준비", () => { | ... | @@ -50,6 +55,8 @@ describe("준비", () => { |
50 | 55 | ||
51 | socket.testNotOk("ready", { ready: true }); | 56 | socket.testNotOk("ready", { ready: true }); |
52 | expect(room.isReady(user)).eq(false); | 57 | expect(room.isReady(user)).eq(false); |
58 | + | ||
59 | + clear([room]); | ||
53 | }); | 60 | }); |
54 | it("방장이 되면 준비 상태가 해제됩니다", () => { | 61 | it("방장이 되면 준비 상태가 해제됩니다", () => { |
55 | const { | 62 | const { |
... | @@ -62,11 +69,15 @@ describe("준비", () => { | ... | @@ -62,11 +69,15 @@ describe("준비", () => { |
62 | expect(room.isReady(user2)).eq(true); | 69 | expect(room.isReady(user2)).eq(true); |
63 | room.setAdmin(user2); | 70 | room.setAdmin(user2); |
64 | expect(room.isReady(user2)).eq(false); | 71 | expect(room.isReady(user2)).eq(false); |
72 | + | ||
73 | + clear([room]); | ||
65 | }); | 74 | }); |
66 | it("혼자 있는 방에서는 게임을 시작할 수 없습니다", () => { | 75 | it("혼자 있는 방에서는 게임을 시작할 수 없습니다", () => { |
67 | const { room } = prepareJoinedRoom(1); | 76 | const { room } = prepareJoinedRoom(1); |
68 | 77 | ||
69 | expect(room.canStart().ok).eq(false); | 78 | expect(room.canStart().ok).eq(false); |
79 | + | ||
80 | + clear([room]); | ||
70 | }); | 81 | }); |
71 | it("모두가 준비해야 게임을 시작할 수 있습니다", () => { | 82 | it("모두가 준비해야 게임을 시작할 수 있습니다", () => { |
72 | const { | 83 | const { |
... | @@ -88,5 +99,7 @@ describe("준비", () => { | ... | @@ -88,5 +99,7 @@ describe("준비", () => { |
88 | // 2, 3 모두 준비 | 99 | // 2, 3 모두 준비 |
89 | expect(socket2.test("ready", { ready: true }).ok).eq(true); | 100 | expect(socket2.test("ready", { ready: true }).ok).eq(true); |
90 | expect(room.canStart().ok).eq(true); | 101 | expect(room.canStart().ok).eq(true); |
102 | + | ||
103 | + clear([room]); | ||
91 | }); | 104 | }); |
92 | }); | 105 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | import { RoomManager } from "../room/RoomManager"; | 2 | import { RoomManager } from "../room/RoomManager"; |
3 | +import { clear } from "./util/clear"; | ||
3 | import { DummySocket } from "./util/DummySocket"; | 4 | import { DummySocket } from "./util/DummySocket"; |
4 | import { prepareUsersEmptyRooms } from "./util/prepare"; | 5 | import { prepareUsersEmptyRooms } from "./util/prepare"; |
5 | import { SocketTester } from "./util/SocketTester"; | 6 | import { SocketTester } from "./util/SocketTester"; |
... | @@ -21,5 +22,7 @@ describe("방 목록 요청", () => { | ... | @@ -21,5 +22,7 @@ describe("방 목록 요청", () => { |
21 | expect(response.result?.length).eq(2); | 22 | expect(response.result?.length).eq(2); |
22 | expect(response.result[0].name).eq(room1.name); | 23 | expect(response.result[0].name).eq(room1.name); |
23 | expect(response.result[1].name).eq(room2.name); | 24 | expect(response.result[1].name).eq(room2.name); |
25 | + | ||
26 | + clear([room1, room2]); | ||
24 | }); | 27 | }); |
25 | }); | 28 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | +import { clear } from "./util/clear"; | ||
2 | import { prepareGame } from "./util/prepare"; | 3 | import { prepareGame } from "./util/prepare"; |
3 | 4 | ||
4 | describe("라운드", () => { | 5 | describe("라운드", () => { |
... | @@ -6,6 +7,7 @@ describe("라운드", () => { | ... | @@ -6,6 +7,7 @@ describe("라운드", () => { |
6 | const { | 7 | const { |
7 | sockets: [socket1, socket2], | 8 | sockets: [socket1, socket2], |
8 | drawerSocket, | 9 | drawerSocket, |
10 | + room, | ||
9 | } = prepareGame(2); | 11 | } = prepareGame(2); |
10 | 12 | ||
11 | expect(socket1.socket.received("startRound").round).eq(1); | 13 | expect(socket1.socket.received("startRound").round).eq(1); |
... | @@ -13,9 +15,11 @@ describe("라운드", () => { | ... | @@ -13,9 +15,11 @@ describe("라운드", () => { |
13 | 15 | ||
14 | // drawer는 wordSet을 받습니다. | 16 | // drawer는 wordSet을 받습니다. |
15 | expect(drawerSocket.socket.received("wordSet").words.length).eq(3); | 17 | expect(drawerSocket.socket.received("wordSet").words.length).eq(3); |
18 | + | ||
19 | + clear([room]); | ||
16 | }); | 20 | }); |
17 | it("drawer가 단어를 선택하면 모두가 wordChosen과 timer를 받습니다", () => { | 21 | it("drawer가 단어를 선택하면 모두가 wordChosen과 timer를 받습니다", () => { |
18 | - const { drawerSocket, guesserSockets } = prepareGame(2); | 22 | + const { drawerSocket, guesserSockets, room } = prepareGame(2); |
19 | 23 | ||
20 | const word = drawerSocket.socket.received("wordSet").words[0]; | 24 | const word = drawerSocket.socket.received("wordSet").words[0]; |
21 | drawerSocket.testOk("chooseWord", { word }); | 25 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -28,19 +32,23 @@ describe("라운드", () => { | ... | @@ -28,19 +32,23 @@ describe("라운드", () => { |
28 | let timerSettings = drawerSocket.socket.received("timer"); | 32 | let timerSettings = drawerSocket.socket.received("timer"); |
29 | expect(timerSettings.state).eq(timerSettings.state); | 33 | expect(timerSettings.state).eq(timerSettings.state); |
30 | expect(timerSettings.time).greaterThan(59); | 34 | expect(timerSettings.time).greaterThan(59); |
35 | + | ||
36 | + clear([room]); | ||
31 | }); | 37 | }); |
32 | it("drawer가 단어를 선택하지 않으면 라운드가 진행되지 않습니다", (done) => { | 38 | it("drawer가 단어를 선택하지 않으면 라운드가 진행되지 않습니다", (done) => { |
33 | - const { drawerSocket, guesserSockets } = prepareGame(2, 5, 0.1); | 39 | + const { drawerSocket, guesserSockets, room } = prepareGame(2, 5, 0.1); |
34 | 40 | ||
35 | // 0.2초 뒤에도 라운드가 종료되지 않습니다. | 41 | // 0.2초 뒤에도 라운드가 종료되지 않습니다. |
36 | setTimeout(() => { | 42 | setTimeout(() => { |
37 | drawerSocket.socket.notReceived("finishRound"); | 43 | drawerSocket.socket.notReceived("finishRound"); |
38 | guesserSockets[0].socket.notReceived("finishRound"); | 44 | guesserSockets[0].socket.notReceived("finishRound"); |
45 | + | ||
46 | + clear([room]); | ||
39 | done(); | 47 | done(); |
40 | }, 200); | 48 | }, 200); |
41 | }); | 49 | }); |
42 | it("아무도 단어를 맞추지 못하고 시간이 지나면 라운드가 종료됩니다", (done) => { | 50 | it("아무도 단어를 맞추지 못하고 시간이 지나면 라운드가 종료됩니다", (done) => { |
43 | - const { drawerSocket, guesserSockets } = prepareGame(2, 5, 0.2); | 51 | + const { drawerSocket, guesserSockets, room } = prepareGame(2, 5, 0.2); |
44 | 52 | ||
45 | const word = drawerSocket.socket.received("wordSet").words[0]; | 53 | const word = drawerSocket.socket.received("wordSet").words[0]; |
46 | drawerSocket.testOk("chooseWord", { word }); | 54 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -54,11 +62,13 @@ describe("라운드", () => { | ... | @@ -54,11 +62,13 @@ describe("라운드", () => { |
54 | setTimeout(() => { | 62 | setTimeout(() => { |
55 | expect(drawerSocket.socket.received("finishRound").answer).eq(word); | 63 | expect(drawerSocket.socket.received("finishRound").answer).eq(word); |
56 | expect(guesserSockets[0].socket.received("finishRound").answer).eq(word); | 64 | expect(guesserSockets[0].socket.received("finishRound").answer).eq(word); |
65 | + | ||
66 | + clear([room]); | ||
57 | done(); | 67 | done(); |
58 | }, 300); | 68 | }, 300); |
59 | }); | 69 | }); |
60 | it("모든 guesser가 단어를 맞추면 라운드가 종료됩니다", (done) => { | 70 | it("모든 guesser가 단어를 맞추면 라운드가 종료됩니다", (done) => { |
61 | - const { drawerSocket, guesserSockets } = prepareGame(3, 5, 0.5); | 71 | + const { drawerSocket, guesserSockets, room } = prepareGame(3, 5, 0.5); |
62 | 72 | ||
63 | const word = drawerSocket.socket.received("wordSet").words[0]; | 73 | const word = drawerSocket.socket.received("wordSet").words[0]; |
64 | drawerSocket.testOk("chooseWord", { word }); | 74 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -86,19 +96,23 @@ describe("라운드", () => { | ... | @@ -86,19 +96,23 @@ describe("라운드", () => { |
86 | // 0.3초 뒤에는 라운드가 종료됩니다. | 96 | // 0.3초 뒤에는 라운드가 종료됩니다. |
87 | setTimeout(() => { | 97 | setTimeout(() => { |
88 | drawerSocket.socket.received("finishRound"); | 98 | drawerSocket.socket.received("finishRound"); |
99 | + | ||
100 | + clear([room]); | ||
89 | done(); | 101 | done(); |
90 | }, 300); | 102 | }, 300); |
91 | }); | 103 | }); |
92 | it("drawer가 단어를 선택하지 않고 나가면 즉시 라운드가 다시 시작됩니다", () => { | 104 | it("drawer가 단어를 선택하지 않고 나가면 즉시 라운드가 다시 시작됩니다", () => { |
93 | - const { drawerSocket, guesserSockets } = prepareGame(3); | 105 | + const { drawerSocket, guesserSockets, room } = prepareGame(3); |
94 | guesserSockets[0].socket.received("startRound"); | 106 | guesserSockets[0].socket.received("startRound"); |
95 | 107 | ||
96 | guesserSockets[0].socket.notReceived("startRound"); | 108 | guesserSockets[0].socket.notReceived("startRound"); |
97 | drawerSocket.disconnect(); | 109 | drawerSocket.disconnect(); |
98 | expect(guesserSockets[0].socket.received("startRound").round).eq(1); | 110 | expect(guesserSockets[0].socket.received("startRound").round).eq(1); |
111 | + | ||
112 | + clear([room]); | ||
99 | }); | 113 | }); |
100 | it("drawer가 단어를 선택하지 않고 모든 guesser가 나가면 인원이 부족하므로 게임이 종료됩니다", () => { | 114 | it("drawer가 단어를 선택하지 않고 모든 guesser가 나가면 인원이 부족하므로 게임이 종료됩니다", () => { |
101 | - const { drawerSocket, guesserSockets } = prepareGame(3); | 115 | + const { drawerSocket, guesserSockets, room } = prepareGame(3); |
102 | 116 | ||
103 | drawerSocket.socket.notReceived("finishRound"); | 117 | drawerSocket.socket.notReceived("finishRound"); |
104 | guesserSockets[0].disconnect(); | 118 | guesserSockets[0].disconnect(); |
... | @@ -106,9 +120,11 @@ describe("라운드", () => { | ... | @@ -106,9 +120,11 @@ describe("라운드", () => { |
106 | guesserSockets[1].disconnect(); | 120 | guesserSockets[1].disconnect(); |
107 | // 단어가 선택되지 않았으므로 finishRound가 수신되지 않습니다. | 121 | // 단어가 선택되지 않았으므로 finishRound가 수신되지 않습니다. |
108 | drawerSocket.socket.received("finishGame"); | 122 | drawerSocket.socket.received("finishGame"); |
123 | + | ||
124 | + clear([room]); | ||
109 | }); | 125 | }); |
110 | it("drawer가 단어를 선택하고 모든 guesser가 나가면 인원이 부족하므로 게임이 종료됩니다", () => { | 126 | it("drawer가 단어를 선택하고 모든 guesser가 나가면 인원이 부족하므로 게임이 종료됩니다", () => { |
111 | - const { drawerSocket, guesserSockets } = prepareGame(3); | 127 | + const { drawerSocket, guesserSockets, room } = prepareGame(3); |
112 | 128 | ||
113 | const word = drawerSocket.socket.received("wordSet").words[0]; | 129 | const word = drawerSocket.socket.received("wordSet").words[0]; |
114 | drawerSocket.testOk("chooseWord", { word }); | 130 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -119,9 +135,11 @@ describe("라운드", () => { | ... | @@ -119,9 +135,11 @@ describe("라운드", () => { |
119 | guesserSockets[1].disconnect(); | 135 | guesserSockets[1].disconnect(); |
120 | drawerSocket.socket.received("finishRound"); | 136 | drawerSocket.socket.received("finishRound"); |
121 | drawerSocket.socket.received("finishGame"); | 137 | drawerSocket.socket.received("finishGame"); |
138 | + | ||
139 | + clear([room]); | ||
122 | }); | 140 | }); |
123 | it("drawer가 단어를 선택하고 나가면 라운드가 종료됩니다", () => { | 141 | it("drawer가 단어를 선택하고 나가면 라운드가 종료됩니다", () => { |
124 | - const { drawerSocket, guesserSockets } = prepareGame(3); | 142 | + const { drawerSocket, guesserSockets, room } = prepareGame(3); |
125 | 143 | ||
126 | const word = drawerSocket.socket.received("wordSet").words[0]; | 144 | const word = drawerSocket.socket.received("wordSet").words[0]; |
127 | drawerSocket.testOk("chooseWord", { word }); | 145 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -130,9 +148,11 @@ describe("라운드", () => { | ... | @@ -130,9 +148,11 @@ describe("라운드", () => { |
130 | drawerSocket.disconnect(); | 148 | drawerSocket.disconnect(); |
131 | guesserSockets[0].socket.received("finishRound"); | 149 | guesserSockets[0].socket.received("finishRound"); |
132 | guesserSockets[0].socket.notReceived("finishGame"); | 150 | guesserSockets[0].socket.notReceived("finishGame"); |
151 | + | ||
152 | + clear([room]); | ||
133 | }); | 153 | }); |
134 | it("라운드가 종료되고 다음 라운드를 기다리는 동안 drawer가 나가도 다음 라운드가 시작됩니다", (done) => { | 154 | it("라운드가 종료되고 다음 라운드를 기다리는 동안 drawer가 나가도 다음 라운드가 시작됩니다", (done) => { |
135 | - const { drawerSocket, guesserSockets } = prepareGame(3, 5, 5, 0.1); | 155 | + const { drawerSocket, guesserSockets, room } = prepareGame(3, 5, 5, 0.1); |
136 | guesserSockets[0].socket.received("startRound"); | 156 | guesserSockets[0].socket.received("startRound"); |
137 | 157 | ||
138 | const word = drawerSocket.socket.received("wordSet").words[0]; | 158 | const word = drawerSocket.socket.received("wordSet").words[0]; |
... | @@ -147,11 +167,13 @@ describe("라운드", () => { | ... | @@ -147,11 +167,13 @@ describe("라운드", () => { |
147 | 167 | ||
148 | setTimeout(() => { | 168 | setTimeout(() => { |
149 | expect(guesserSockets[0].socket.received("startRound").round).eq(2); | 169 | expect(guesserSockets[0].socket.received("startRound").round).eq(2); |
170 | + | ||
171 | + clear([room]); | ||
150 | done(); | 172 | done(); |
151 | }, 200); | 173 | }, 200); |
152 | }); | 174 | }); |
153 | it("라운드가 종료되고 다음 라운드를 기다리는 동안 인원이 부족해지면 게임이 즉시 종료됩니다", () => { | 175 | it("라운드가 종료되고 다음 라운드를 기다리는 동안 인원이 부족해지면 게임이 즉시 종료됩니다", () => { |
154 | - const { drawerSocket, guesserSockets } = prepareGame(2, 5, 5, 0.1); | 176 | + const { drawerSocket, guesserSockets, room } = prepareGame(2, 5, 5, 0.1); |
155 | guesserSockets[0].socket.received("startRound"); | 177 | guesserSockets[0].socket.received("startRound"); |
156 | 178 | ||
157 | const word = drawerSocket.socket.received("wordSet").words[0]; | 179 | const word = drawerSocket.socket.received("wordSet").words[0]; |
... | @@ -163,9 +185,11 @@ describe("라운드", () => { | ... | @@ -163,9 +185,11 @@ describe("라운드", () => { |
163 | guesserSockets[0].disconnect(); | 185 | guesserSockets[0].disconnect(); |
164 | 186 | ||
165 | drawerSocket.socket.received("finishGame"); | 187 | drawerSocket.socket.received("finishGame"); |
188 | + | ||
189 | + clear([room]); | ||
166 | }); | 190 | }); |
167 | it("라운드가 종료되면 다음 라운드가 시작됩니다", (done) => { | 191 | it("라운드가 종료되면 다음 라운드가 시작됩니다", (done) => { |
168 | - const { drawerSocket, guesserSockets } = prepareGame(2, 5, 0.2, 0.2); | 192 | + const { drawerSocket, guesserSockets, room } = prepareGame(2, 5, 0.2, 0.2); |
169 | 193 | ||
170 | drawerSocket.socket.received("startRound"); | 194 | drawerSocket.socket.received("startRound"); |
171 | guesserSockets[0].socket.received("startRound"); | 195 | guesserSockets[0].socket.received("startRound"); |
... | @@ -188,11 +212,13 @@ describe("라운드", () => { | ... | @@ -188,11 +212,13 @@ describe("라운드", () => { |
188 | setTimeout(() => { | 212 | setTimeout(() => { |
189 | expect(drawerSocket.socket.received("startRound").round).eq(2); | 213 | expect(drawerSocket.socket.received("startRound").round).eq(2); |
190 | expect(guesserSockets[0].socket.received("startRound").round).eq(2); | 214 | expect(guesserSockets[0].socket.received("startRound").round).eq(2); |
215 | + | ||
216 | + clear([room]); | ||
191 | done(); | 217 | done(); |
192 | }, 500); | 218 | }, 500); |
193 | }); | 219 | }); |
194 | it("마지막 라운드가 종료되면 게임이 종료됩니다", (done) => { | 220 | it("마지막 라운드가 종료되면 게임이 종료됩니다", (done) => { |
195 | - const { drawerSocket } = prepareGame(2, 1, 0.1, 0.2); | 221 | + const { drawerSocket, room } = prepareGame(2, 1, 0.1, 0.2); |
196 | 222 | ||
197 | const word = drawerSocket.socket.received("wordSet").words[0]; | 223 | const word = drawerSocket.socket.received("wordSet").words[0]; |
198 | drawerSocket.testOk("chooseWord", { word }); | 224 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -203,6 +229,8 @@ describe("라운드", () => { | ... | @@ -203,6 +229,8 @@ describe("라운드", () => { |
203 | }, 200); | 229 | }, 200); |
204 | setTimeout(() => { | 230 | setTimeout(() => { |
205 | drawerSocket.socket.received("finishGame"); | 231 | drawerSocket.socket.received("finishGame"); |
232 | + | ||
233 | + clear([room]); | ||
206 | done(); | 234 | done(); |
207 | }, 400); | 235 | }, 400); |
208 | }); | 236 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | +import { clear } from "./util/clear"; | ||
2 | import { prepareGame } from "./util/prepare"; | 3 | import { prepareGame } from "./util/prepare"; |
3 | 4 | ||
4 | describe("라운드 채팅", () => { | 5 | describe("라운드 채팅", () => { |
5 | it("guesser가 정답을 채팅으로 보내면 정답 처리되고 다른 사람들에게 채팅이 보이지 않습니다", () => { | 6 | it("guesser가 정답을 채팅으로 보내면 정답 처리되고 다른 사람들에게 채팅이 보이지 않습니다", () => { |
6 | - const { drawerSocket, guesserSockets } = prepareGame(3); | 7 | + const { drawerSocket, guesserSockets, room } = prepareGame(3); |
7 | 8 | ||
8 | const word = drawerSocket.socket.received("wordSet").words[0]; | 9 | const word = drawerSocket.socket.received("wordSet").words[0]; |
9 | drawerSocket.testOk("chooseWord", { word }); | 10 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -15,9 +16,11 @@ describe("라운드 채팅", () => { | ... | @@ -15,9 +16,11 @@ describe("라운드 채팅", () => { |
15 | guesserSockets[0].testOk("chat", { message: word }); | 16 | guesserSockets[0].testOk("chat", { message: word }); |
16 | expect(guesserSockets[0].socket.received("answerAccepted").answer).eq(word); | 17 | expect(guesserSockets[0].socket.received("answerAccepted").answer).eq(word); |
17 | guesserSockets[1].socket.notReceived("chat"); | 18 | guesserSockets[1].socket.notReceived("chat"); |
19 | + | ||
20 | + clear([room]); | ||
18 | }); | 21 | }); |
19 | it("guesser가 정답을 채팅으로 보내면 역할이 winner로 변경됩니다", () => { | 22 | it("guesser가 정답을 채팅으로 보내면 역할이 winner로 변경됩니다", () => { |
20 | - const { drawerSocket, guesserSockets } = prepareGame(2); | 23 | + const { drawerSocket, guesserSockets, room } = prepareGame(2); |
21 | 24 | ||
22 | const word = drawerSocket.socket.received("wordSet").words[0]; | 25 | const word = drawerSocket.socket.received("wordSet").words[0]; |
23 | drawerSocket.testOk("chooseWord", { word }); | 26 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -32,9 +35,11 @@ describe("라운드 채팅", () => { | ... | @@ -32,9 +35,11 @@ describe("라운드 채팅", () => { |
32 | username: guesserSockets[0].connection.user?.username, | 35 | username: guesserSockets[0].connection.user?.username, |
33 | role: "winner", | 36 | role: "winner", |
34 | }); | 37 | }); |
38 | + | ||
39 | + clear([room]); | ||
35 | }); | 40 | }); |
36 | it("라운드가 끝나고 다음 라운드를 준비하는 시간에 답을 채팅으로 보내도 정답 처리되지 않습니다", (done) => { | 41 | it("라운드가 끝나고 다음 라운드를 준비하는 시간에 답을 채팅으로 보내도 정답 처리되지 않습니다", (done) => { |
37 | - const { drawerSocket, guesserSockets } = prepareGame(2, 5, 0.1, 0.3); | 42 | + const { drawerSocket, guesserSockets, room } = prepareGame(2, 5, 0.1, 0.3); |
38 | 43 | ||
39 | const word = drawerSocket.socket.received("wordSet").words[0]; | 44 | const word = drawerSocket.socket.received("wordSet").words[0]; |
40 | drawerSocket.testOk("chooseWord", { word }); | 45 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -45,11 +50,18 @@ describe("라운드 채팅", () => { | ... | @@ -45,11 +50,18 @@ describe("라운드 채팅", () => { |
45 | guesserSockets[0].testOk("chat", { message: word }); | 50 | guesserSockets[0].testOk("chat", { message: word }); |
46 | guesserSockets[0].socket.notReceived("answerAccepted"); | 51 | guesserSockets[0].socket.notReceived("answerAccepted"); |
47 | guesserSockets[0].socket.notReceived("role"); | 52 | guesserSockets[0].socket.notReceived("role"); |
53 | + | ||
54 | + clear([room]); | ||
48 | done(); | 55 | done(); |
49 | }, 200); | 56 | }, 200); |
50 | }); | 57 | }); |
51 | it("다음 라운드의 단어가 선택되지 않았을 때 이전 라운드의 답을 채팅으로 보내도 정답 처리되지 않습니다", (done) => { | 58 | it("다음 라운드의 단어가 선택되지 않았을 때 이전 라운드의 답을 채팅으로 보내도 정답 처리되지 않습니다", (done) => { |
52 | - const { drawerSocket, guesserSockets, game } = prepareGame(2, 5, 0.2, 0.1); | 59 | + const { drawerSocket, guesserSockets, game, room } = prepareGame( |
60 | + 2, | ||
61 | + 5, | ||
62 | + 0.2, | ||
63 | + 0.1 | ||
64 | + ); | ||
53 | 65 | ||
54 | const word = drawerSocket.socket.received("wordSet").words[0]; | 66 | const word = drawerSocket.socket.received("wordSet").words[0]; |
55 | drawerSocket.testOk("chooseWord", { word }); | 67 | drawerSocket.testOk("chooseWord", { word }); |
... | @@ -67,6 +79,8 @@ describe("라운드 채팅", () => { | ... | @@ -67,6 +79,8 @@ describe("라운드 채팅", () => { |
67 | } else { | 79 | } else { |
68 | throw new Error("There is no drawer!"); | 80 | throw new Error("There is no drawer!"); |
69 | } | 81 | } |
82 | + | ||
83 | + clear([room]); | ||
70 | done(); | 84 | done(); |
71 | }, 400); | 85 | }, 400); |
72 | }); | 86 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | +import { clear } from "./util/clear"; | ||
2 | import { prepareGame } from "./util/prepare"; | 3 | import { prepareGame } from "./util/prepare"; |
3 | 4 | ||
4 | describe("라운드 브러시 설정", () => { | 5 | describe("라운드 브러시 설정", () => { |
5 | it("drawer가 브러시를 설정하면 다른 사람들이 설정을 받습니다", () => { | 6 | it("drawer가 브러시를 설정하면 다른 사람들이 설정을 받습니다", () => { |
6 | - const { drawerSocket, guesserSockets } = prepareGame(2); | 7 | + const { drawerSocket, guesserSockets, room } = prepareGame(2); |
7 | 8 | ||
8 | const brushSettings = { | 9 | const brushSettings = { |
9 | size: 1, | 10 | size: 1, |
... | @@ -14,9 +15,11 @@ describe("라운드 브러시 설정", () => { | ... | @@ -14,9 +15,11 @@ describe("라운드 브러시 설정", () => { |
14 | expect(guesserSockets[0].socket.received("setBrush")).deep.eq( | 15 | expect(guesserSockets[0].socket.received("setBrush")).deep.eq( |
15 | brushSettings | 16 | brushSettings |
16 | ); | 17 | ); |
18 | + | ||
19 | + clear([room]); | ||
17 | }); | 20 | }); |
18 | it("올바르지 않은 브러시 색상은 허용되지 않습니다", () => { | 21 | it("올바르지 않은 브러시 색상은 허용되지 않습니다", () => { |
19 | - const { drawerSocket } = prepareGame(2); | 22 | + const { drawerSocket, room } = prepareGame(2); |
20 | drawerSocket.testNotOk("setBrush", { | 23 | drawerSocket.testNotOk("setBrush", { |
21 | size: 1, | 24 | size: 1, |
22 | color: "000", | 25 | color: "000", |
... | @@ -27,9 +30,11 @@ describe("라운드 브러시 설정", () => { | ... | @@ -27,9 +30,11 @@ describe("라운드 브러시 설정", () => { |
27 | color: "asdf01", | 30 | color: "asdf01", |
28 | drawing: true, | 31 | drawing: true, |
29 | }); | 32 | }); |
33 | + | ||
34 | + clear([room]); | ||
30 | }); | 35 | }); |
31 | it("올바르지 않은 브러시 사이즈는 Clamp 됩니다", () => { | 36 | it("올바르지 않은 브러시 사이즈는 Clamp 됩니다", () => { |
32 | - const { drawerSocket, guesserSockets } = prepareGame(2); | 37 | + const { drawerSocket, guesserSockets, room } = prepareGame(2); |
33 | drawerSocket.testOk("setBrush", { | 38 | drawerSocket.testOk("setBrush", { |
34 | size: 0, | 39 | size: 0, |
35 | color: "000000", | 40 | color: "000000", |
... | @@ -42,9 +47,11 @@ describe("라운드 브러시 설정", () => { | ... | @@ -42,9 +47,11 @@ describe("라운드 브러시 설정", () => { |
42 | drawing: true, | 47 | drawing: true, |
43 | }); | 48 | }); |
44 | expect(guesserSockets[0].socket.received("setBrush").size).eq(64); | 49 | expect(guesserSockets[0].socket.received("setBrush").size).eq(64); |
50 | + | ||
51 | + clear([room]); | ||
45 | }); | 52 | }); |
46 | it("drawer가 아닌 다른 사람들은 브러시를 설정할 수 없습니다", () => { | 53 | it("drawer가 아닌 다른 사람들은 브러시를 설정할 수 없습니다", () => { |
47 | - const { guesserSockets } = prepareGame(2); | 54 | + const { guesserSockets, room } = prepareGame(2); |
48 | 55 | ||
49 | const brushSettings = { | 56 | const brushSettings = { |
50 | size: 1, | 57 | size: 1, |
... | @@ -52,5 +59,7 @@ describe("라운드 브러시 설정", () => { | ... | @@ -52,5 +59,7 @@ describe("라운드 브러시 설정", () => { |
52 | drawing: true, | 59 | drawing: true, |
53 | }; | 60 | }; |
54 | guesserSockets[0].testNotOk("setBrush", brushSettings); | 61 | guesserSockets[0].testNotOk("setBrush", brushSettings); |
62 | + | ||
63 | + clear([room]); | ||
55 | }); | 64 | }); |
56 | }); | 65 | }); | ... | ... |
1 | import { expect } from "chai"; | 1 | import { expect } from "chai"; |
2 | +import { clear } from "./util/clear"; | ||
2 | import { prepareJoinedRoom, prepareUsersEmptyRooms } from "./util/prepare"; | 3 | import { prepareJoinedRoom, prepareUsersEmptyRooms } from "./util/prepare"; |
3 | 4 | ||
4 | describe("게임 시작", () => { | 5 | describe("게임 시작", () => { |
... | @@ -14,17 +15,23 @@ describe("게임 시작", () => { | ... | @@ -14,17 +15,23 @@ describe("게임 시작", () => { |
14 | 15 | ||
15 | expect(socket2.testNotOk("startGame", {})); | 16 | expect(socket2.testNotOk("startGame", {})); |
16 | expect(socket1.testOk("startGame", {})); | 17 | expect(socket1.testOk("startGame", {})); |
18 | + | ||
19 | + clear([room]); | ||
17 | }); | 20 | }); |
18 | it("인원이 충분해야 게임을 시작할 수 있습니다.", () => { | 21 | it("인원이 충분해야 게임을 시작할 수 있습니다.", () => { |
19 | const { | 22 | const { |
20 | sockets: [socket1], | 23 | sockets: [socket1], |
24 | + room, | ||
21 | } = prepareJoinedRoom(1); | 25 | } = prepareJoinedRoom(1); |
22 | 26 | ||
23 | expect(socket1.testNotOk("startGame", {})); | 27 | expect(socket1.testNotOk("startGame", {})); |
28 | + | ||
29 | + clear([room]); | ||
24 | }); | 30 | }); |
25 | it("게임이 시작되면 startRound를 받습니다.", () => { | 31 | it("게임이 시작되면 startRound를 받습니다.", () => { |
26 | const { | 32 | const { |
27 | sockets: [socket1, socket2], | 33 | sockets: [socket1, socket2], |
34 | + room, | ||
28 | } = prepareJoinedRoom(2); | 35 | } = prepareJoinedRoom(2); |
29 | 36 | ||
30 | expect(socket2.testOk("ready", { ready: true })); | 37 | expect(socket2.testOk("ready", { ready: true })); |
... | @@ -32,5 +39,7 @@ describe("게임 시작", () => { | ... | @@ -32,5 +39,7 @@ describe("게임 시작", () => { |
32 | 39 | ||
33 | expect(socket1.socket.received("startRound")); | 40 | expect(socket1.socket.received("startRound")); |
34 | expect(socket2.socket.received("startRound")); | 41 | expect(socket2.socket.received("startRound")); |
42 | + | ||
43 | + clear([room]); | ||
35 | }); | 44 | }); |
36 | }); | 45 | }); | ... | ... |
-
Please register or login to post a comment