mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
Compare commits
No commits in common. "b66fbc09b259e63b503dc8f7ae9192d4fdaf2088" and "571fdb0d15819f80d40f59325acfe27430e54e61" have entirely different histories.
b66fbc09b2
...
571fdb0d15
2 changed files with 0 additions and 205 deletions
|
|
@ -1,95 +0,0 @@
|
||||||
import React from 'react';
|
|
||||||
import { render, screen, fireEvent } from '@testing-library/react';
|
|
||||||
import '@testing-library/jest-dom';
|
|
||||||
import LiveResults from 'src/components/LiveResults/LiveResults';
|
|
||||||
import { QuestionType } from 'src/Types/QuestionType';
|
|
||||||
import { StudentType } from 'src/Types/StudentType';
|
|
||||||
import { BaseQuestion, parse } from 'gift-pegjs';
|
|
||||||
|
|
||||||
const mockGiftQuestions = parse(
|
|
||||||
`::Sample Question 1:: Sample Question 1 {=Answer 1 ~Answer 2}
|
|
||||||
|
|
||||||
::Sample Question 2:: Sample Question 2 {T}`);
|
|
||||||
|
|
||||||
const mockQuestions: QuestionType[] = mockGiftQuestions.map((question, index) => {
|
|
||||||
if (question.type !== "Category")
|
|
||||||
question.id = (index + 1).toString();
|
|
||||||
const newMockQuestion = question;
|
|
||||||
return {question : newMockQuestion as BaseQuestion};
|
|
||||||
});
|
|
||||||
|
|
||||||
const mockStudents: StudentType[] = [
|
|
||||||
{ id: "1", name: 'Student 1', answers: [{ idQuestion: 1, answer: 'Answer 1', isCorrect: true }] },
|
|
||||||
{ id: "2", name: 'Student 2', answers: [{ idQuestion: 2, answer: 'Answer 2', isCorrect: false }] },
|
|
||||||
];
|
|
||||||
|
|
||||||
const mockShowSelectedQuestion = jest.fn();
|
|
||||||
|
|
||||||
describe('LiveResults', () => {
|
|
||||||
test('renders LiveResults component', () => {
|
|
||||||
render(
|
|
||||||
<LiveResults
|
|
||||||
socket={null}
|
|
||||||
questions={mockQuestions}
|
|
||||||
showSelectedQuestion={mockShowSelectedQuestion}
|
|
||||||
quizMode="teacher"
|
|
||||||
students={mockStudents}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(screen.getByText('Résultats du quiz')).toBeInTheDocument();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('toggles show usernames switch', () => {
|
|
||||||
render(
|
|
||||||
<LiveResults
|
|
||||||
socket={null}
|
|
||||||
questions={mockQuestions}
|
|
||||||
showSelectedQuestion={mockShowSelectedQuestion}
|
|
||||||
quizMode="teacher"
|
|
||||||
students={mockStudents}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
const switchElement = screen.getByLabelText('Afficher les noms');
|
|
||||||
expect(switchElement).toBeInTheDocument();
|
|
||||||
|
|
||||||
fireEvent.click(switchElement);
|
|
||||||
expect(switchElement).toBeChecked();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('toggles show correct answers switch', () => {
|
|
||||||
render(
|
|
||||||
<LiveResults
|
|
||||||
socket={null}
|
|
||||||
questions={mockQuestions}
|
|
||||||
showSelectedQuestion={mockShowSelectedQuestion}
|
|
||||||
quizMode="teacher"
|
|
||||||
students={mockStudents}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
const switchElement = screen.getByLabelText('Afficher les réponses');
|
|
||||||
expect(switchElement).toBeInTheDocument();
|
|
||||||
|
|
||||||
fireEvent.click(switchElement);
|
|
||||||
expect(switchElement).toBeChecked();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('calls showSelectedQuestion when a table cell is clicked', () => {
|
|
||||||
render(
|
|
||||||
<LiveResults
|
|
||||||
socket={null}
|
|
||||||
questions={mockQuestions}
|
|
||||||
showSelectedQuestion={mockShowSelectedQuestion}
|
|
||||||
quizMode="teacher"
|
|
||||||
students={mockStudents}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
const tableCell = screen.getByText('Q1');
|
|
||||||
fireEvent.click(tableCell);
|
|
||||||
|
|
||||||
expect(mockShowSelectedQuestion).toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
import React from 'react';
|
|
||||||
import { render, screen, fireEvent } from '@testing-library/react';
|
|
||||||
import '@testing-library/jest-dom';
|
|
||||||
import { StudentType } from 'src/Types/StudentType';
|
|
||||||
import LiveResultsTable from 'src/components/LiveResults/LiveResultsTable';
|
|
||||||
import { QuestionType } from 'src/Types/QuestionType';
|
|
||||||
import { BaseQuestion, parse } from 'gift-pegjs';
|
|
||||||
|
|
||||||
const mockGiftQuestions = parse(
|
|
||||||
`::Sample Question 1:: Sample Question 1 {=Answer 1 ~Answer 2}
|
|
||||||
|
|
||||||
::Sample Question 2:: Sample Question 2 {T}`);
|
|
||||||
|
|
||||||
const mockQuestions: QuestionType[] = mockGiftQuestions.map((question, index) => {
|
|
||||||
if (question.type !== "Category")
|
|
||||||
question.id = (index + 1).toString();
|
|
||||||
const newMockQuestion = question;
|
|
||||||
return {question : newMockQuestion as BaseQuestion};
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
const mockStudents: StudentType[] = [
|
|
||||||
{ id: "1", name: 'Student 1', answers: [{ idQuestion: 1, answer: 'Answer 1', isCorrect: true }] },
|
|
||||||
{ id: "2", name: 'Student 2', answers: [{ idQuestion: 2, answer: 'Answer 2', isCorrect: false }] },
|
|
||||||
];
|
|
||||||
|
|
||||||
const mockShowSelectedQuestion = jest.fn();
|
|
||||||
|
|
||||||
describe('LiveResultsTable', () => {
|
|
||||||
test('renders LiveResultsTable component', () => {
|
|
||||||
render(
|
|
||||||
<LiveResultsTable
|
|
||||||
questions={mockQuestions}
|
|
||||||
students={mockStudents}
|
|
||||||
showCorrectAnswers={false}
|
|
||||||
showSelectedQuestion={mockShowSelectedQuestion}
|
|
||||||
showUsernames={true}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(screen.getByText('Student 1')).toBeInTheDocument();
|
|
||||||
expect(screen.getByText('Student 2')).toBeInTheDocument();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('displays correct and incorrect answers', () => {
|
|
||||||
render(
|
|
||||||
<LiveResultsTable
|
|
||||||
questions={mockQuestions}
|
|
||||||
students={mockStudents}
|
|
||||||
showCorrectAnswers={true}
|
|
||||||
showSelectedQuestion={mockShowSelectedQuestion}
|
|
||||||
showUsernames={true}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(screen.getByText('Answer 1')).toBeInTheDocument();
|
|
||||||
expect(screen.getByText('Answer 2')).toBeInTheDocument();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('calls showSelectedQuestion when a table cell is clicked', () => {
|
|
||||||
render(
|
|
||||||
<LiveResultsTable
|
|
||||||
questions={mockQuestions}
|
|
||||||
students={mockStudents}
|
|
||||||
showCorrectAnswers={true}
|
|
||||||
showSelectedQuestion={mockShowSelectedQuestion}
|
|
||||||
showUsernames={true}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
const tableCell = screen.getByText('Q1');
|
|
||||||
fireEvent.click(tableCell);
|
|
||||||
|
|
||||||
expect(mockShowSelectedQuestion).toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('calculates and displays student grades', () => {
|
|
||||||
render(
|
|
||||||
<LiveResultsTable
|
|
||||||
questions={mockQuestions}
|
|
||||||
students={mockStudents}
|
|
||||||
showCorrectAnswers={true}
|
|
||||||
showSelectedQuestion={mockShowSelectedQuestion}
|
|
||||||
showUsernames={true}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
//50% because only one of the two questions have been answered (getALLByText, because there are a value 50% for the %reussite de la question
|
|
||||||
// and a second one for the student grade)
|
|
||||||
const gradeElements = screen.getAllByText('50 %');
|
|
||||||
expect(gradeElements.length).toBe(2);
|
|
||||||
|
|
||||||
const gradeElements2 = screen.getAllByText('0 %');
|
|
||||||
expect(gradeElements2.length).toBe(2); });
|
|
||||||
|
|
||||||
test('calculates and displays class average', () => {
|
|
||||||
render(
|
|
||||||
<LiveResultsTable
|
|
||||||
questions={mockQuestions}
|
|
||||||
students={mockStudents}
|
|
||||||
showCorrectAnswers={true}
|
|
||||||
showSelectedQuestion={mockShowSelectedQuestion}
|
|
||||||
showUsernames={true}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
//1 good answer out of 4 possible good answers (the second question has not been answered)
|
|
||||||
expect(screen.getByText('25 %')).toBeInTheDocument();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
Loading…
Reference in a new issue