lct-15: самооценка курсанта до показа автооценки

Правило сервера, а не интерфейса: score.ready курсанту уходит только
после self_assessment.submit, обойти его через DevTools нельзя.
Преподаватель и монитор получают оценку сразу — им ждать нечего.

Чек-лист для самооценки отдаётся отдельной точкой и только после конца
звонка: во время разговора это содержимое подсказок, и открыть его
значило бы выдать в контрольном режиме то, чего там быть не должно.

Попутно подключён расчёт оценки при завершении звонка — детерминированный
слой был написан в lct-12, но его никто не вызывал.

Тест на отсутствие события смотрит очередь курсанта, а не ждёт из сокета:
ожидание того, чего не будет, вешает прогон навсегда.
This commit is contained in:
Ivan Gerasimov 2026-09-17 21:24:34 +03:00
commit 25143645d3
10 changed files with 260 additions and 2 deletions

View file

@ -3,6 +3,7 @@
import { KioCard } from "@/features/kio-card/KioCard";
import { ModeBanner, hintsAllowed } from "@/features/mode-banner/ModeBanner";
import { SelfAssessment } from "@/features/self-assessment/SelfAssessment";
import { InterviewTimer, Timers } from "@/features/timers/Timers";
import { display } from "@/features/kio-card/merge";
import { useCall } from "@/features/call/useCall";
@ -54,6 +55,13 @@ export function Call() {
{call.error && <p className="violated">{call.error}</p>}
{call.phase === "ended" && !call.selfAssessed && call.checklist.length > 0 && (
<SelfAssessment checklist={call.checklist} onSubmit={call.submitSelfAssessment} />
)}
{call.selfAssessed && (
<p>{call.scoreReady ? "Оценка готова — разбор открывает преподаватель." : "Самооценка принята, оценка считается…"}</p>
)}
<div className="columns">
<section>
<h2>Карточка информационного обмена</h2>