mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
Fix ManageRoom tests
This commit is contained in:
parent
fc69a37e53
commit
3855eca6c6
1 changed files with 37 additions and 33 deletions
|
|
@ -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,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -84,7 +84,7 @@ describe('ManageRoom', () => {
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(ApiService.getQuiz).toHaveBeenCalledWith('test-quiz-id');
|
expect(ApiService.getQuiz).toHaveBeenCalledWith('test-quiz-id');
|
||||||
});
|
});
|
||||||
|
|
||||||
const launchButton = screen.getByText('Lancer');
|
const launchButton = screen.getByText('Lancer');
|
||||||
fireEvent.click(launchButton);
|
fireEvent.click(launchButton);
|
||||||
|
|
||||||
|
|
@ -96,12 +96,15 @@ 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();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('handles create-success event', async () => {
|
test('handles create-success event', async () => {
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
render(
|
render(
|
||||||
|
|
@ -110,14 +113,14 @@ describe('ManageRoom', () => {
|
||||||
</MemoryRouter>
|
</MemoryRouter>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
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();
|
||||||
|
|
@ -209,29 +214,30 @@ describe('ManageRoom', () => {
|
||||||
</MemoryRouter>
|
</MemoryRouter>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
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');
|
|
||||||
fireEvent.click(rythmeButton);
|
await waitFor(() => {
|
||||||
|
screen.debug();
|
||||||
const secondLaunchButton = screen.getAllByText('Lancer');
|
});
|
||||||
fireEvent.click(secondLaunchButton[1]);
|
|
||||||
|
const nextQuestionButton = await screen.findByRole('button', { name: /Prochaine question/i });
|
||||||
const nextQuestionButton = screen.getByText('Prochaine question');
|
expect(nextQuestionButton).toBeInTheDocument();
|
||||||
|
|
||||||
fireEvent.click(nextQuestionButton);
|
fireEvent.click(nextQuestionButton);
|
||||||
|
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(screen.getByText('Question 2/2')).toBeInTheDocument();
|
expect(screen.getByText('Question 2/2')).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('handles disconnect', async () => {
|
test('handles disconnect', async () => {
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
render(
|
render(
|
||||||
|
|
@ -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');
|
||||||
|
|
@ -300,7 +306,7 @@ describe('ManageRoom', () => {
|
||||||
|
|
||||||
consoleSpy.mockRestore();
|
consoleSpy.mockRestore();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('vide la liste des étudiants après déconnexion', async () => {
|
test('vide la liste des étudiants après déconnexion', async () => {
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
render(
|
render(
|
||||||
|
|
@ -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();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue