Files
hrm-medpark/docs/testing/control-medical-scenarios.md
T
Danil Suhomlinov 33800292aa chore: add Coolify deployment scaffolding (Dockerfiles, prod compose, git hygiene)
- apps/api/Dockerfile: build NestJS, run prisma migrate deploy on start
- apps/web/Dockerfile + nginx.conf: build Vite, serve static, proxy /api -> api
- docker-compose.coolify.yml: full prod stack (postgres, redis, minio, keycloak, api, web)
- .dockerignore / .gitignore / .gitattributes

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 17:42:45 +03:00

19 KiB
Raw Blame History

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»