Много разных изменений

This commit is contained in:
Zuev
2026-08-20 00:55:27 +03:00
parent 3599d850f6
commit a1c4ee4298
78 changed files with 4698 additions and 428 deletions

View File

@@ -0,0 +1,29 @@
import test from 'node:test';
import assert from 'node:assert/strict';
import { buildScheduleOverviewModel } from '../schedule-overview.js';
test('обзор расписания выделяет занятия сегодня и ближайшую пару', () => {
const now = new Date(2026, 7, 19, 10, 15, 0);
const lessons = [
{ date: '2026-08-20', startTime: '09:00:00', endTime: '10:30:00', subjectName: 'Завтра' },
{ date: '2026-08-19', startTime: '08:30:00', endTime: '10:00:00', subjectName: 'Завершилась' },
{ date: '2026-08-19', startTime: '11:00:00', endTime: '12:30:00', subjectName: 'Ближайшая' }
];
const model = buildScheduleOverviewModel(lessons, now);
assert.equal(model.todayIso, '2026-08-19');
assert.deepEqual(model.todayLessons.map(item => item.subjectName), ['Завершилась', 'Ближайшая']);
assert.equal(model.nextLesson.subjectName, 'Ближайшая');
});
test('текущее занятие считается ближайшим до времени окончания', () => {
const now = new Date(2026, 7, 19, 10, 15, 0);
const model = buildScheduleOverviewModel([
{ date: '2026-08-19', startTime: '10:00', endTime: '11:30', subjectName: 'Идёт сейчас' },
{ date: '2026-08-19', startTime: '12:00', endTime: '13:30', subjectName: 'Следующее' }
], now);
assert.equal(model.nextLesson.subjectName, 'Идёт сейчас');
});