# 2026-07-24 — Логика UI для тестирования операций ## Принцип: одна операция — один тест Пользователь выбирает сервис → видит его операции → выбирает операцию → задаёт параметры → жмёт «Тест». ## Dummy как эталон Dummy (svcId=1) — тестовый сервис. 7 операций: create, modify, suspend, resume, delete, redeploy, reconcile. ### Состояния операций Операции зависят от существования инстанса: - **Инстанс НЕ создан:** только `create` активна, остальные серые - **Инстанс создан (running):** `modify`, `suspend`, `delete`, `redeploy` активны - **Инстанс suspended:** `resume`, `delete` активны - **Инстанс deleted:** все серые `reconcile` — всегда доступна (восстановительная). ## UI (мысли) ### Таблица сервисов (сейчас скрыта, будет возвращена) Одна строка на сервис. При клике — раскрывается список операций. ### Операции Каждая операция — строка с: - Название операции - Кнопка «Тест» (серая если недоступна) - Индикатор состояния (instanceUid если инстанс существует) ### Параметры операции (при клике на «Тест») Раскрывается форма с параметрами: - **Обязательные, есть defaultValue:** поле заполнено, **жирный шрифт** - **Обязательные, нет defaultValue:** поле с плейсхолдером, **красная обводка** — юзер должен заполнить - **Необязательные:** поле с defaultValue или пустое, обычный шрифт Для `valueList` — select/autocomplete. Для `map-fixed` — вложенные поля. Для `boolean` — checkbox. ### Логика доступности операций ``` Если инстансов dummy == 0: create: активно остальные: серые Если есть инстанс в статусе running: modify, suspend, delete, redeploy: активны resume: серое create: серое (уже есть) Если есть инстанс в статусе suspended: resume, delete: активны остальные: серые ``` ## Не реализовано (MVP later) - Pipeline из нескольких операций - Сохранение пресетов параметров - История тестов