Fix ManageRoom tests

This commit is contained in:
NouhailaAater 2025-02-27 02:17:54 -05:00
parent fc69a37e53
commit 3855eca6c6

View file

@ -35,7 +35,7 @@ const mockQuiz: QuizType = {
folderName: 'folder-name', folderName: 'folder-name',
userId: 'user-id', userId: 'user-id',
created_at: new Date(), created_at: new Date(),
updated_at: new Date() updated_at: new Date(),
}; };
const mockStudents: StudentType[] = [ const mockStudents: StudentType[] = [
@ -58,12 +58,12 @@ describe('ManageRoom', () => {
beforeEach(() => { beforeEach(() => {
jest.clearAllMocks(); jest.clearAllMocks();
(useNavigate as jest.Mock).mockReturnValue(navigate); (useNavigate as jest.Mock).mockReturnValue(navigate);
useParamsMock.mockReturnValue({ id: 'test-quiz-id' }); useParamsMock.mockReturnValue({ quizId: 'test-quiz-id', roomName: 'Test Room' });
(ApiService.getQuiz as jest.Mock).mockResolvedValue(mockQuiz); (ApiService.getQuiz as jest.Mock).mockResolvedValue(mockQuiz);
(webSocketService.connect as jest.Mock).mockReturnValue(mockSocket); (webSocketService.connect as jest.Mock).mockReturnValue(mockSocket);
(useRooms as jest.Mock).mockReturnValue({ (useRooms as jest.Mock).mockReturnValue({
selectedRoom: { id: '1', title: 'Test Room' }, selectedRoom: { id: '1', title: 'Test Room' },
setSelectedRoom: mockSetSelectedRoom setSelectedRoom: mockSetSelectedRoom,
}); });
}); });
@ -96,7 +96,10 @@ describe('ManageRoom', () => {
await waitFor(() => { await waitFor(() => {
expect(screen.getByText('Test Quiz')).toBeInTheDocument(); expect(screen.getByText('Test Quiz')).toBeInTheDocument();
expect(screen.getByText(/Salle\s*:\s*Test Room/i)).toBeInTheDocument();
const roomHeader = document.querySelector('h1');
expect(roomHeader).toHaveTextContent('Salle : Test Room');
expect(screen.getByText('0/60')).toBeInTheDocument(); expect(screen.getByText('0/60')).toBeInTheDocument();
expect(screen.getByText('Question 1/2')).toBeInTheDocument(); expect(screen.getByText('Question 1/2')).toBeInTheDocument();
}); });
@ -113,11 +116,11 @@ describe('ManageRoom', () => {
await act(async () => { await act(async () => {
const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1]; const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1];
createSuccessCallback('test-room-name'); createSuccessCallback('Test Room');
}); });
await waitFor(() => { await waitFor(() => {
expect(screen.getByText(/Salle\s*:\s*test-room-name/i)).toBeInTheDocument(); expect(screen.getByText(/Salle\s*:\s*Test Room/i)).toBeInTheDocument();
}); });
}); });
@ -132,7 +135,7 @@ describe('ManageRoom', () => {
await act(async () => { await act(async () => {
const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1]; const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1];
createSuccessCallback('test-room-name'); createSuccessCallback('Test Room');
}); });
await act(async () => { await act(async () => {
@ -172,7 +175,7 @@ describe('ManageRoom', () => {
await act(async () => { await act(async () => {
const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1]; const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1];
createSuccessCallback('test-room-name'); createSuccessCallback('Test Room');
}); });
const launchButton = screen.getByText('Lancer'); const launchButton = screen.getByText('Lancer');
@ -195,7 +198,9 @@ describe('ManageRoom', () => {
}); });
await waitFor(() => { await waitFor(() => {
expect(consoleSpy).toHaveBeenCalledWith('Received answer from Student 1 for question 1: Answer1'); expect(consoleSpy).toHaveBeenCalledWith(
'Received answer from Student 1 for question 1: Answer1'
);
}); });
consoleSpy.mockRestore(); consoleSpy.mockRestore();
@ -212,19 +217,20 @@ describe('ManageRoom', () => {
await act(async () => { await act(async () => {
const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1]; const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1];
createSuccessCallback('test-room-name'); createSuccessCallback('Test Room');
}); });
const launchButton = screen.getByText('Lancer'); fireEvent.click(screen.getByText('Lancer'));
fireEvent.click(launchButton); fireEvent.click(screen.getByText('Rythme du professeur'));
fireEvent.click(screen.getAllByText('Lancer')[1]);
const rythmeButton = screen.getByText('Rythme du professeur'); await waitFor(() => {
fireEvent.click(rythmeButton); screen.debug();
});
const secondLaunchButton = screen.getAllByText('Lancer'); const nextQuestionButton = await screen.findByRole('button', { name: /Prochaine question/i });
fireEvent.click(secondLaunchButton[1]); expect(nextQuestionButton).toBeInTheDocument();
const nextQuestionButton = screen.getByText('Prochaine question');
fireEvent.click(nextQuestionButton); fireEvent.click(nextQuestionButton);
await waitFor(() => { await waitFor(() => {
@ -243,7 +249,7 @@ describe('ManageRoom', () => {
await act(async () => { await act(async () => {
const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1]; const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1];
createSuccessCallback('test-room-name'); createSuccessCallback('Test Room');
}); });
const disconnectButton = screen.getByText('Quitter'); const disconnectButton = screen.getByText('Quitter');
@ -312,7 +318,7 @@ describe('ManageRoom', () => {
await act(async () => { await act(async () => {
const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1]; const createSuccessCallback = (mockSocket.on as jest.Mock).mock.calls.find(call => call[0] === 'create-success')[1];
createSuccessCallback('test-room-name'); createSuccessCallback('Test Room');
}); });
await act(async () => { await act(async () => {
@ -330,6 +336,4 @@ describe('ManageRoom', () => {
expect(screen.queryByText('Student 1')).not.toBeInTheDocument(); expect(screen.queryByText('Student 1')).not.toBeInTheDocument();
}); });
}); });
}); });