|
18 | 18 | ChatFactory, |
19 | 19 | FeedbackFactory, |
20 | 20 | GameFactory, |
| 21 | + LiveChatFactory, |
21 | 22 | LobbyFactory, |
22 | 23 | MatchFactory, |
23 | 24 | TournamentFactory, |
@@ -1276,3 +1277,54 @@ def test_delete_gamedata(self): |
1276 | 1277 |
|
1277 | 1278 | response = self.client.get(detail_url) |
1278 | 1279 | self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) |
| 1280 | + |
| 1281 | + |
| 1282 | +class TestLiveChatAPI(APITestCase): |
| 1283 | + def setUp(self): |
| 1284 | + self.user1 = UserFactory() |
| 1285 | + self.user2 = UserFactory() |
| 1286 | + self.user3 = UserFactory() |
| 1287 | + |
| 1288 | + self.client.force_authenticate(user=self.user1) |
| 1289 | + |
| 1290 | + def test_create_livechat(self): |
| 1291 | + url = reverse("api-livechat-create") |
| 1292 | + response = self.client.post(url, {"name": "Test Chat"}) |
| 1293 | + |
| 1294 | + self.assertEqual(response.status_code, status.HTTP_201_CREATED) |
| 1295 | + self.assertEqual(response.data["name"], "Test Chat") |
| 1296 | + self.assertEqual(response.data["users"], [self.user1.id]) |
| 1297 | + |
| 1298 | + def test_add_users_to_chat(self): |
| 1299 | + chat = LiveChatFactory(users=[self.user1]) |
| 1300 | + url = reverse("api-livechat-add-user", args=[chat.id]) |
| 1301 | + |
| 1302 | + response = self.client.post(url, {"user_ids": [self.user2.id, self.user3.id]}, format="json") |
| 1303 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 1304 | + |
| 1305 | + # Reloads LiveChat from the database to get the latest state |
| 1306 | + chat.refresh_from_db() |
| 1307 | + user_ids = set(chat.users.values_list("id", flat=True)) |
| 1308 | + self.assertSetEqual(user_ids, {self.user1.id, self.user2.id, self.user3.id}) |
| 1309 | + |
| 1310 | + def test_list_chats_user_is_in(self): |
| 1311 | + # user1 is only in this one |
| 1312 | + chat = LiveChatFactory(name="Test Chat", users=[self.user1]) |
| 1313 | + LiveChatFactory(users=[self.user1]) |
| 1314 | + LiveChatFactory(users=[self.user2]) |
| 1315 | + |
| 1316 | + url = reverse("api-livechat-list") |
| 1317 | + response = self.client.get(url) |
| 1318 | + |
| 1319 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 1320 | + self.assertEqual(response.data["count"], 2) |
| 1321 | + self.assertEqual(response.data["results"][0]["id"], chat.id) |
| 1322 | + |
| 1323 | + def test_livechat_detail(self): |
| 1324 | + chat = LiveChatFactory(users=[self.user1, self.user2]) |
| 1325 | + url = reverse("api-livechat-detail", args=[chat.id]) |
| 1326 | + |
| 1327 | + response = self.client.get(url) |
| 1328 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 1329 | + self.assertEqual(response.data["id"], chat.id) |
| 1330 | + self.assertEqual(set(response.data["users"]), {self.user1.id, self.user2.id}) |
0 commit comments