refactor: отчёт сессии загружается одним hook useSessionReport с повтором 409
This commit is contained in:
parent
93c5f063f3
commit
f6d0653e68
7 changed files with 106 additions and 79 deletions
21
frontend/scripts/test-session-report.mjs
Normal file
21
frontend/scripts/test-session-report.mjs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import assert from "node:assert/strict";
|
||||
|
||||
import { REPORT_RETRY_LIMIT, reportErrorMessage, reportRetryDelay, shouldRetryReport } from "../src/shared/api/report.mjs";
|
||||
|
||||
assert.equal(reportErrorMessage(403), "Отчёт недоступен: это занятие другого обучающегося.");
|
||||
assert.equal(reportErrorMessage(409), "Оценка ещё не готова. Попробуйте получить разбор чуть позже.");
|
||||
assert.equal(reportErrorMessage(500), "Не удалось получить отчёт (HTTP 500).");
|
||||
assert.equal(reportErrorMessage(null), "Не удалось получить отчёт.", "сеть упала — статуса нет");
|
||||
|
||||
assert.equal(shouldRetryReport(0, 409), true, "оценка ещё считается — повторяем сами");
|
||||
assert.equal(shouldRetryReport(REPORT_RETRY_LIMIT - 1, 409), true);
|
||||
assert.equal(shouldRetryReport(REPORT_RETRY_LIMIT, 409), false, "число попыток ограничено");
|
||||
assert.equal(shouldRetryReport(0, 403), false, "чужое занятие не станет своим — не повторяем");
|
||||
assert.equal(shouldRetryReport(0, 404), false);
|
||||
assert.equal(shouldRetryReport(0, 500), false);
|
||||
|
||||
assert.ok(reportRetryDelay(0) > 0);
|
||||
assert.ok(reportRetryDelay(1) >= reportRetryDelay(0), "паузы не сокращаются");
|
||||
assert.ok(reportRetryDelay(50) <= 5_000, "пауза ограничена сверху");
|
||||
|
||||
console.log("Session report: unified errors, 409 retried with a limit, 403 not retried.");
|
||||
Loading…
Reference in a new issue