fix(tests): режимы доступных тестов только exam/practice + скрытие пустых предметов

Рассогласование: админ-настройка допускала режимы topic/random, но POST /api/sessions
принимает только exam/practice → клик по такому предмету падал с 400. Убрал topic/random
из валидатора subjects.js и из админ-дропдауна (SC_MODES). Дашборд: старые значения
topic/random коэрсятся в practice; предметы без вопросов в банке И без фикс-теста больше
не показываются (раньше давали 404 «No questions found» при запуске).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-23 10:53:43 +03:00
parent 1aa95a6776
commit c5d440a7a9
3 changed files with 12 additions and 5 deletions
+3 -1
View File
@@ -11,7 +11,9 @@ router.get('/', (_req, res) => {
router.patch('/:slug', authMiddleware, requireRole('admin'), (req, res) => {
const { default_mode, default_count, default_test_id } = req.body;
const valid_modes = ['exam', 'practice', 'topic', 'random'];
// Старт сессии (POST /api/sessions) поддерживает только exam/practice — раньше тут
// допускались topic/random, но клик по такому предмету на дашборде падал с 400.
const valid_modes = ['exam', 'practice'];
if (default_mode && !valid_modes.includes(default_mode))
return res.status(400).json({ error: 'Invalid mode' });