-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
67 lines (53 loc) · 2.92 KB
/
test.js
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
62
63
64
65
66
67
const axios = require('axios');
const http = require('http');
const agent = new http.Agent({
rejectUnauthorized: false
});
const BASE_URL = 'https://localhost:3000/api';
async function test() {
console.log('Starting tests...');
try {
// Test 1: Create rooms with different users and check room separation
console.log('Test 1: Creating rooms and checking room separation');
await axios.post(`${BASE_URL}/joinRoom`, { studyroomId: 'room1', memberId: 'user1', isHarmfulAppDetected: true }, { httpsAgent: agent });
await axios.post(`${BASE_URL}/joinRoom`, { studyroomId: 'room1', memberId: 'user2', isHarmfulAppDetected: false }, { httpsAgent: agent });
await axios.post(`${BASE_URL}/joinRoom`, { studyroomId: 'room2', memberId: 'user3', isHarmfulAppDetected: true }, { httpsAgent: agent });
let room1Members = await axios.get(`${BASE_URL}/roomMembers/room1`, { httpsAgent: agent });
let room2Members = await axios.get(`${BASE_URL}/roomMembers/room2`, { httpsAgent: agent });
console.log('Room 1 members:', room1Members.data.members);
console.log('Room 2 members:', room2Members.data.members);
if (room1Members.data.members.length !== 2 || room2Members.data.members.length !== 1) {
throw new Error('Room separation test failed');
}
// Test 2: Update member status
console.log('\nTest 2: Updating member status');
await axios.post(`${BASE_URL}/updateMemberStatus`, { studyroomId: 'room1', memberId: 'user2', isHarmfulAppDetected: true }, { httpsAgent: agent });
// We don't have a direct way to check screen sharing status, so we'll just verify the update request succeeded
console.log('Member status updated successfully');
// Test 3: Leave room and check for removal
console.log('\nTest 3: Leaving room and checking for removal');
await axios.post(`${BASE_URL}/leaveRoom`, { studyroomId: 'room1', memberId: 'user1' }, { httpsAgent: agent });
room1Members = await axios.get(`${BASE_URL}/roomMembers/room1`, { httpsAgent: agent });
console.log('Room 1 members after user1 left:', room1Members.data.members);
if (room1Members.data.members.includes('user1')) {
throw new Error('Leave room test failed');
}
// Test 4: Check all rooms
console.log('\nTest 4: Checking all rooms');
const allRooms = await axios.get(`${BASE_URL}/rooms`, { httpsAgent: agent });
console.log('All rooms:', allRooms.data.rooms);
if (!allRooms.data.rooms.includes('room1') || !allRooms.data.rooms.includes('room2')) {
throw new Error('All rooms test failed');
}
console.log('\nAll tests completed successfully!');
} catch (error) {
console.error('Test failed:', error.message);
if (error.response) {
console.error('Response data:', error.response.data);
console.error('Response status:', error.response.status);
} else if (error.request) {
console.error('No response received:', error.request);
}
}
}
test();