# Control Medical — Сценарии UI-тестирования > Проверяем только то, что видит и делает пользователь в браузере. > Открыть: `http://localhost:5173` > Логин: страница входа → выбрать пользователя и роль → «Autentifică-te» --- ## Роли для тестирования | Роль | Что можно делать | |------|-----------------| | **HR Admin** | Всё | | **HR Specialist** | Создавать профили и checkup, удалять документы | | **Medic Familie** | Видеть inbox, записывать вердикт | | **Manager** | Только просматривать | | **Employee** | Только просматривать своё | --- ## 1. Carduri de risc ### TC-01 — Создание карты риска **Роль:** HR Admin **Шаги:** 1. Меню слева → «Carduri de risc» 2. Нажать «+ Adaugă card de risc» 3. Ввести название, добавить хотя бы 1 фактор риска 4. Нажать «Salvează» **Ожидаем:** Карта появляется в таблице, виден бейдж с количеством факторов --- ### TC-02 — Редактирование карты **Роль:** HR Admin **Шаги:** 1. В таблице карт нажать иконку карандаша 2. Изменить название или добавить новый фактор 3. Сохранить **Ожидаем:** В таблице отображается обновлённое название/количество факторов --- ### TC-03 — Удаление карты **Роль:** HR Admin **Шаги:** 1. Создать тестовую карту (не привязанную к сотрудникам) 2. Нажать иконку корзины 3. Подтвердить удаление **Ожидаем:** Карта исчезает из таблицы --- ### TC-04 — HR Specialist не видит кнопки удаления и создания **Роль:** HR Specialist **Шаги:** 1. Открыть «Carduri de risc» **Ожидаем:** Кнопка «+ Adaugă» и иконки удаления отсутствуют --- ### TC-05 — Карта со всеми категориями факторов **Роль:** HR Admin **Шаги:** 1. Создать карту, добавив факторы в каждую из 5 категорий: chimici, fizici, biologici, ergonomici, psihosociali 2. Сохранить и открыть карту **Ожидаем:** Все 5 категорий с факторами отображаются в деталях карты --- ## 2. Profil medical сотрудника ### TC-06 — Назначение медицинского профиля **Роль:** HR Admin **Шаги:** 1. Меню → «Angajați» → открыть любого сотрудника 2. Вкладка «Medical» → кнопка «Editează» 3. Выбрать карту риска, ввести CORM-код и специальность 4. Сохранить **Ожидаем:** В профиле отображается карта риска как кликабельная ссылка, CORM-специальность заполнена, «ULTIMUL CONTROL» пуст --- ### TC-07 — Включение флага «Expus radiații» **Роль:** HR Admin **Шаги:** 1. Открыть медицинский профиль сотрудника → «Editează» 2. Включить тогл «Expus radiații ionizante» 3. Ввести дозу externă и internă 4. Сохранить **Ожидаем:** Поле «EXPUS RADIAȚII: Da» отображается в профиле; значение dozaTotal = externă + internă --- ### TC-08 — Смена карты риска **Роль:** HR Admin **Шаги:** 1. У сотрудника уже есть профиль с картой риска 2. «Editează» → выбрать другую карту → сохранить **Ожидаем:** Новая карта отображается в профиле; история checkup не потерялась --- ### TC-09 — Просмотр профиля как Employee **Роль:** Employee **Шаги:** 1. Войти как employee → открыть свой профиль → вкладка «Medical» **Ожидаем:** Данные видны, но кнопок «Editează» и удаления нет --- ## 3. Страница Control medical ### TC-10 — Статистические карточки отображаются корректно **Роль:** HR Admin **Шаги:** 1. Убедиться, что есть хотя бы 1 сотрудник с медицинским профилем 2. Открыть «Control medical» **Ожидаем:** Карточки «TOTAL ANGAJAȚI», «CONTROL EXPIRAT», «EXPIRĂ ÎN 30 ZILE», «EXPUȘI RADIAȚII» показывают числа (не пустые и не нулевые если данные есть) --- ### TC-11 — Сотрудник без профиля не виден **Роль:** HR Admin **Шаги:** 1. Создать нового сотрудника, не добавляя ему медицинский профиль 2. Открыть «Control medical» **Ожидаем:** Новый сотрудник в таблице отсутствует --- ### TC-12 — Статус NICIODATĂ у нового сотрудника с профилем **Роль:** HR Admin **Шаги:** 1. Назначить медицинский профиль новому сотруднику 2. Открыть «Control medical» **Ожидаем:** Сотрудник виден в таблице, красный бейдж «NICIODATĂ», колонка «ULTIMUL CONTROL» показывает «—» --- ### TC-13 — Выбор строки кликом **Роль:** HR Admin **Шаги:** 1. На странице «Control medical» кликнуть на строку сотрудника **Ожидаем:** Строка подсвечивается зелёным, чекбокс заполнен, счётчик кнопки «Generează documente» стал (1) --- ### TC-14 — Снятие выбора повторным кликом **Роль:** HR Admin **Шаги:** 1. Кликнуть строку (выбрать) → кликнуть снова (снять выбор) **Ожидаем:** Подсветка пропала, счётчик вернулся к (0), кнопка стала неактивной --- ### TC-15 — Выбор всех через хедер-чекбокс **Роль:** HR Admin **Шаги:** 1. Кликнуть чекбокс в шапке таблицы **Ожидаем:** Все строки выделены, счётчик = количество строк в таблице --- ### TC-16 — Фильтр по карте риска **Роль:** HR Admin **Шаги:** 1. В дропдауне «Toate» выбрать конкретную карту риска **Ожидаем:** В таблице остаются только сотрудники с этой картой; счётчик кнопки сбрасывается в (0) --- ### TC-17 — Кнопка заблокирована при 0 выбранных **Роль:** HR Admin **Шаги:** 1. Открыть «Control medical», ничего не выбирать **Ожидаем:** Кнопка «Generează documente (0)» серая и некликабельная --- ## 4. Генерация документов (Bulk) ### TC-18 — Открытие модала генерации **Роль:** HR Admin **Шаги:** 1. Выбрать сотрудника → нажать «Generează documente (1)» **Ожидаем:** Открывается модал «Inițiere control medical» с: - Текстом «1 angajați selectați» - Дропдауном «Tipul controlului medical» (по умолчанию «Periodic») - Полем «Data planificată» (заполнено сегодняшней датой) - Блоком с описанием документов, которые будут созданы - Кнопками «Anulează» и «Generează documente» --- ### TC-19 — Генерация без флага радиации **Роль:** HR Admin (сотрудник без `expusRadiatiiIonizante`) **Шаги:** 1. Выбрать сотрудника → «Generează documente» → тип «Periodic» → дата сегодня → «Generează documente» 2. Подождать ~2 секунды **Ожидаем:** Модал результата с: - Заголовком «✓ Documente generate cu succes» - 3 документа: ANEXA_3_FISA_SOLICITARE.DOCX, ANEXA_4_FISA_EVALUARE.DOCX, ANEXA_6_[ИМЯ].DOCX - Anexa_4B **отсутствует** - Toast «Documente generate» в углу экрана --- ### TC-20 — Генерация с флагом радиации **Роль:** HR Admin (сотрудник с включённым `expusRadiatiiIonizante`) **Шаги:** 1. Выбрать сотрудника с флагом радиации → «Generează documente» → подтвердить **Ожидаем:** В результате **4 документа**: Anexa_3, Anexa_4, **Anexa_4B**, Anexa_6 --- ### TC-21 — Тип checkup меняется в модале **Роль:** HR Admin **Шаги:** 1. Открыть модал генерации → сменить тип с «Periodic» на «La angajare» **Ожидаем:** Выбор сохраняется, генерация проходит с типом «La angajare» --- ### TC-22 — Отмена генерации **Роль:** HR Admin **Шаги:** 1. Выбрать сотрудника → открыть модал → нажать «Anulează» **Ожидаем:** Модал закрывается, ничего не создаётся, сотрудник остаётся выбранным --- ### TC-23 — Checkup появляется в истории сотрудника **Роль:** HR Admin **Шаги:** 1. Сгенерировать документы → закрыть результат 2. Меню «Angajați» → открыть сотрудника → вкладка «Medical» **Ожидаем:** В «Istoricul controlului medical» новая строка: тип «PERIODIC», дата планирования, вердикт «IN AȘTEPTARE», 3 кликабельных документа --- ### TC-24 — Счётчик радиации на странице **Роль:** HR Admin **Шаги:** 1. Включить `expusRadiatiiIonizante` у одного сотрудника → открыть «Control medical» **Ожидаем:** Карточка «EXPUȘI RADIAȚII» показывает 1 (или увеличивается на 1) --- ## 5. Inbox medic de familie ### TC-25 — Pending checkup виден в inbox **Роль:** Medic Familie **Шаги:** 1. Войти как Medic Familie 2. Меню → «Inbox medic» **Ожидаем:** Таблица с pending checkup (verdict = null): колонки IDNP, ANGAJAT, TIP CONTROL, DATA PLANIFICATĂ, CARD DE RISC, кнопка «Completează» --- ### TC-26 — Метка «Întârziat» на просроченных **Роль:** Medic Familie **Шаги:** 1. Создать checkup с датой планирования в прошлом (или просто проверить текущие) 2. Открыть «Inbox medic» **Ожидаем:** Рядом с датой оранжевая метка «Întârziat» --- ### TC-27 — Запись вердикта «Apt» **Роль:** Medic Familie **Шаги:** 1. Нажать «Completează» у checkup 2. Выбрать вердикт «Apt», дата заполнена автоматически 3. Нажать «Înregistrează verdict» **Ожидаем:** - Toast «Verdictul a fost înregistrat» - Строка исчезает из inbox - Список сокращается на 1 --- ### TC-28 — Все варианты вердикта доступны **Роль:** Medic Familie **Шаги:** 1. Нажать «Completează» → открыть дропдаун «Verdict» **Ожидаем:** 5 вариантов: Apt, Apt (perioadă adaptare), Apt condiționat, Inapt temporar, Inapt --- ### TC-29 — Нельзя отправить без вердикта **Роль:** Medic Familie **Шаги:** 1. Открыть «Completează» → НЕ выбирать вердикт → нажать «Înregistrează verdict» **Ожидаем:** Кнопка не отправляет форму или отображается ошибка валидации (поле обязательное) --- ### TC-30 — Рекомендации (необязательное поле) **Роль:** Medic Familie **Шаги:** 1. «Completează» → вердикт «Apt conditionat» → заполнить «Recomandări» текстом → отправить 2. Открыть вкладку «Medical» сотрудника **Ожидаем:** В колонке «RECOMANDĂRI» отображается введённый текст --- ### TC-31 — HR Admin не может записать вердикт **Роль:** HR Admin **Шаги:** 1. Войти как HR Admin → открыть «Inbox medic» 2. Нажать «Completează» → выбрать вердикт → отправить **Ожидаем:** Toast с ошибкой «Forbidden resource», checkup остаётся в inbox --- ### TC-32 — После вердикта ULTIMUL CONTROL обновился **Роль:** Medic Familie → затем HR Admin **Шаги:** 1. Записать вердикт для periodic checkup 2. Войти как HR Admin → «Angajați» → сотрудник → вкладка «Medical» **Ожидаем:** Поле «ULTIMUL CONTROL» = дата вердикта --- ### TC-33 — После вердикта добавился Anexa 6 Final **Роль:** После записи вердикта **Шаги:** 1. Записать вердикт → открыть вкладку «Medical» сотрудника → найти завершённый checkup **Ожидаем:** В документах checkup появился новый файл «Anexa_6_Final_...» (4-й документ вместо 3-х) --- ## 6. Документы — скачивание и удаление ### TC-34 — Скачивание документа **Роль:** HR Admin / HR Specialist **Шаги:** 1. Вкладка «Medical» сотрудника → нажать «↓ Anexa_3_...» у любого checkup **Ожидаем:** Открывается новая вкладка браузера, файл загружается (DOCX, не пустой) --- ### TC-35 — Удаление одного документа **Роль:** HR Admin **Шаги:** 1. В строке checkup нажать маленькую иконку корзины рядом с конкретным документом 2. Подтвердить (если есть подтверждение) **Ожидаем:** Этот документ исчезает из списка, остальные документы строки остаются --- ### TC-36 — Удаление всех документов checkup («Toate») **Роль:** HR Admin **Шаги:** 1. В строке checkup нажать кнопку «Toate» (удалить все) 2. Подтвердить **Ожидаем:** Все документы строки исчезают, колонка «DOCUMENTE» пустая --- ### TC-37 — HR Specialist может удалять документы **Роль:** HR Specialist **Шаги:** 1. Открыть вкладку «Medical» сотрудника → удалить один документ **Ожидаем:** Удаление проходит успешно, документ исчезает --- ### TC-38 — Medic Familie не видит кнопки удаления документов **Роль:** Medic Familie **Шаги:** 1. Войти как Medic Familie → открыть «Angajați» → вкладка «Medical» **Ожидаем:** Иконки удаления документов недоступны / не отображаются --- ## 7. Удаление checkup ### TC-39 — Удаление checkup целиком **Роль:** HR Admin **Шаги:** 1. Вкладка «Medical» сотрудника → в строке checkup нажать большую красную корзину (удалить checkup) 2. Подтвердить **Ожидаем:** Строка полностью исчезает из «Istoricul controlului medical» --- ### TC-40 — HR Specialist не видит кнопку удаления checkup **Роль:** HR Specialist **Шаги:** 1. Открыть вкладку «Medical» любого сотрудника **Ожидаем:** Иконка удаления checkup (крайняя справа) недоступна или скрыта --- ## 8. Полный happy path (сквозной тест) ### TC-41 — Полный цикл от создания карты до вердикта **Шаги:** | # | Роль | Действие | Ожидаем | |---|------|----------|---------| | 1 | HR Admin | Carduri de risc → создать карту «Тест» с 2 факторами | Карта в таблице | | 2 | HR Admin | Angajați → сотрудник → Medical → Editează → выбрать «Тест» → сохранить | Карта в профиле, ULTIMUL CONTROL пуст | | 3 | HR Admin | Control medical → строка сотрудника → выбрать | Бейдж «NICIODATĂ», кнопка (1) | | 4 | HR Admin | Generează documente → Periodic → сегодня → подтвердить | 3 документа в результате | | 5 | HR Admin | Angajați → Medical → история | 1 строка IN AȘTEPTARE с 3 документами | | 6 | Medic Familie | Inbox medic → Completează → Apt → Înregistrează | Toast успех, строка ушла из inbox | | 7 | HR Admin | Angajați → Medical | ULTIMUL CONTROL = сегодня, вердикт APT, 4 документа | | 8 | HR Admin | Control medical | Сотрудник получил статус «OK» (или пропал из таблицы) | --- ## 9. Статусы checkup в истории — визуальная проверка | Состояние | Что видит пользователь в колонке VERDICT | |-----------|------------------------------------------| | Только создан, нет вердикта | Серый бейдж «IN AȘTEPTARE» | | Вердикт «Apt» | Зелёный бейдж «APT» | | Вердикт «Apt (perioadă adaptare)» | Бейдж «APT ADAPTARE» | | Вердикт «Apt condiționat» | Бейдж «APT COND.» | | Вердикт «Inapt temporar» | Оранжевый бейдж «INAPT TEMP.» | | Вердикт «Inapt» | Красный бейдж «INAPT» |