diff --git a/client/src/__tests__/components/StudentWaitPage/StudentWaitPage.test.tsx b/client/src/__tests__/components/StudentWaitPage/StudentWaitPage.test.tsx index a52061a..b86fdf5 100644 --- a/client/src/__tests__/components/StudentWaitPage/StudentWaitPage.test.tsx +++ b/client/src/__tests__/components/StudentWaitPage/StudentWaitPage.test.tsx @@ -10,14 +10,15 @@ describe('StudentWaitPage Component', () => { { id: '1', name: 'User1', answers: new Array() }, { id: '2', name: 'User2', answers: new Array() }, { id: '3', name: 'User3', answers: new Array() }, - ]; + ]; - const mockProps = { + const mockProps = { students: mockUsers, launchQuiz: jest.fn(), roomName: 'Test Room', setQuizMode: jest.fn(), - }; + setIsRoomSelectionVisible: jest.fn() + }; test('renders StudentWaitPage with correct content', () => { render(); @@ -28,16 +29,15 @@ describe('StudentWaitPage Component', () => { expect(launchButton).toBeInTheDocument(); mockUsers.forEach((user) => { - expect(screen.getByText(user.name)).toBeInTheDocument(); + expect(screen.getByText(user.name)).toBeInTheDocument(); }); - }); + }); - test('clicking on "Lancer" button opens LaunchQuizDialog', () => { + test('clicking on "Lancer" button opens LaunchQuizDialog', () => { render(); fireEvent.click(screen.getByRole('button', { name: /Lancer/i })); expect(screen.getByRole('dialog')).toBeInTheDocument(); - }); - -}) + }); +}); diff --git a/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx b/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx index 5529654..db25859 100644 --- a/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx +++ b/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx @@ -189,7 +189,7 @@ const ManageRoom: React.FC = () => { setConnectingError(errorMessage); console.error('Erreur création salle:', errorMessage); }); - + socket.on('user-joined', (student: StudentType) => { console.log(`Student joined: name = ${student.name}, id = ${student.id}`); @@ -201,6 +201,16 @@ const ManageRoom: React.FC = () => { webSocketService.launchStudentModeQuiz(roomName, quizQuestions); } }); + + socket.on('join-failure', (message) => { + setConnectingError(message); + setSocket(null); + }); + + socket.on('user-disconnected', (userId: string) => { + console.log(`Student left: id = ${userId}`); + setStudents((prevUsers) => prevUsers.filter((user) => user.id !== userId)); + }); }; if (rooms.length === 0) {