import assert from 'node:assert/strict'; import { readFile } from 'node:fs/promises'; import test from 'node:test'; test('кабинет преподавателя содержит календарь пожеланий и журнал заявок', async () => { const [index, app, service, preferences, dialog] = await Promise.all([ readFile(new URL('../teacher/index.html', import.meta.url), 'utf8'), readFile(new URL('../react/teacher/TeacherApp.jsx', import.meta.url), 'utf8'), readFile(new URL('../react/teacher/teacher-service.js', import.meta.url), 'utf8'), readFile(new URL('../react/teacher/PreferencesTab.jsx', import.meta.url), 'utf8'), readFile(new URL('../react/teacher/RequestDialog.jsx', import.meta.url), 'utf8') ]); assert.match(index, /\/react\/teacher\.js/); assert.match(app, /preferences: 'Мои пожелания'/); assert.match(app, /requests: 'Заявки на изменение'/); assert.match(preferences, /preference-grid/); assert.match(dialog, /
{ const [tab, service] = await Promise.all([ readFile(new URL('../react/admin/tabs/TeacherAbsencesTab.jsx', import.meta.url), 'utf8'), readFile(new URL('../react/admin/teacher-absences-service.js', import.meta.url), 'utf8') ]); assert.match(tab, /id="teacher-preference-review-list"/); assert.match(tab, /id="teacher-change-review-list"/); assert.match(service, /\/api\/teacher-preferences/); assert.match(service, /\/api\/teacher-change-requests/); assert.match(tab, /role === 'ADMIN' \|\| role === 'EDUCATION_OFFICE'/); assert.match(tab, /Применение доступно учебному отделу/); }); test('конструктор правил показывает только согласованные пожелания преподавателя', async () => { const [tab, service, styles] = await Promise.all([ readFile(new URL('../react/admin/tabs/ScheduleTab.jsx', import.meta.url), 'utf8'), readFile(new URL('../react/admin/schedule-service.js', import.meta.url), 'utf8'), readFile(new URL('../admin/css/components.css', import.meta.url), 'utf8') ]); assert.match(service, /\/api\/teacher-preferences\?status=APPROVED/); assert.match(tab, /data-preference-hint/); assert.match(service, /Строгая недоступность/); assert.match(styles, /\.schedule-preference-hint/); });