+
+ {/* Итог */}
+
+ ) : (
+
+ )
+ }
+ status={result.passed ? 'success' : 'error'}
+ title={result.passed ? 'Тест сдан!' : 'Тест не сдан'}
+ subTitle={result.test_title}
+ />
+
+ {/* Статистика */}
+
+
+
+
+ {result.score}%
+
+ Результат
+
+
+
+ {result.correct_count}/{result.total_count}
+
+ Правильных ответов
+
+
+
+ {result.passing_score}%
+
+ Порог зачёта
+
+
+
+ {minutes > 0 ? `${minutes}м ` : ''}{seconds}с
+
+ Время
+
+
+
+
+ {/* Разбор ошибок */}
+
Разбор ответов
+
+ {result.questions.map((question, index) => (
+
+ {question.is_answered_correctly ? (
+
+ ) : (
+
+ )}
+
+ {index + 1}. {question.text}
+
+
+ }
+ >
+ {
+ const icon = answer.is_correct ? (
+
+ ) : answer.is_selected ? (
+
+ ) : (
+
+ )
+
+ return (
+
+
+ {icon}
+
+ {answer.text}
+
+ {answer.is_selected && answer.is_correct && (
+ ваш ответ ✓
+ )}
+ {answer.is_selected && !answer.is_correct && (
+ ваш ответ ✗
+ )}
+ {!answer.is_selected && answer.is_correct && (
+ правильный ответ
+ )}
+
+
+ )
+ }}
+ />
+
+ ))}
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/frontend/src/pages/TestDetail/index.tsx b/frontend/src/pages/TestDetail/index.tsx
index e69aae6..61dde1a 100644
--- a/frontend/src/pages/TestDetail/index.tsx
+++ b/frontend/src/pages/TestDetail/index.tsx
@@ -1,4 +1,4 @@
-import { ArrowLeftOutlined, CheckCircleTwoTone, CloseCircleTwoTone } from '@ant-design/icons'
+import { ArrowLeftOutlined, CheckCircleTwoTone, CloseCircleTwoTone, PlayCircleOutlined } from '@ant-design/icons'
import { useQuery } from '@tanstack/react-query'
import { Button, Card, Descriptions, List, Space, Spin, Tag, Typography } from 'antd'
import { useNavigate, useParams } from 'react-router-dom'
@@ -24,10 +24,17 @@ export default function TestDetail() {
return (