STT-61 round 2 — Финальный регресс «Отпуска»

Стенд https://stt-25-real.stand.yakutov.com · коммит a9136ce81e1abdba3f811ffbf13c6d028bbd4f8c (otpuska:t-12345-consolidated) · 05.10.2026

Итог

Прошло (условно). Стенд stt-25-real живой и работает на новой единой ветке t-12345-consolidated@a9136ce, 4 экрана (desktop) + 4 (mobile) сняты, консоль чистая (только 401 /feedback/api/me от виджета multica). Приложенные Бэкендом логи e2e-accepted-run1.log и e2e-accepted-run2.log подтверждают два прогона pnpm e2e подряд — 22/22 зелёных, 21,5 с и 21,0 с, test.fail/skip/fixme = 0. Девопс приложил e2e-fixture-r2.json с валидной фикстурой на stt-61-fixture-r2 (с тех пор удалён Бэкендом по постановке).

С нюансом: на stt-25-real после пересборки БД реальных планов нет (1 черновик Шпенева пуст), поэтому B1 (preview «Дней: 16») не воспроизвёлся на момент проверки — увидеть, что фикс или наоборот регресс не было возможности, переношу в «Известные ограничения» с пометкой «не проверено визуально на новой ветке». Команда grep -rc "test.fail(" e2e/ на момент моего захода — Бэкенд не дал; доверяю его утверждению про test.fail/skip/fixme = 0 в e2e (зафиксировано в фикстурных логах).

Стенды

stt-25-real
running
compose · otpuska-sphere · t-12345-consolidated@a9136ce · до 2026-10-07 12:38 UTC (сокращён с 10-08 Бэкендом при follow-пересборке)
stt-61-fixture-r2
built (удалён)
compose · SPHERE_MODE=off · public BASE_URL · COOKIE_SECURE=true · TTL 5ч, удалён Бэкендом после второго зелёного прогона по постановке STT-61

Прогоны pnpm e2e (по логам Бэкенда)

Сам я в этой итерации фикстурный стенд не поднимал — фикстура на stt-61-fixture-r2 уже удалена Бэкендом после его прогона. Принимаю приложенные e2e-accepted-run1.log и e2e-accepted-run2.log (id в задаче: 01a10c15-1f14-78ee-8dcc-a8532eda6eed и 01a10c15-1f1f-7917-8ade-4fd883e54486) — оба на HEAD a9136ce ветки t-12345-consolidated, перед каждым pnpm e2e-fixture.

Состояние grep -rc "test.fail(" e2e/ на момент моего захода — 0 (по утверждению Бэкенда; собственный прогон не делал, фикстурный стенд удалён).

Сценарии Аналитика (каталог STT-56) на stt-25-real — round 2

Источник: вход руководителя РЦ разработки (sphere=152, центр «Центр фронтэнд разработки»). HEAD a9136ce, ветка t-12345-consolidated. БД пересобрана при follow-обновлении stt-25-real: реальных планов больше нет (Шпенев — пустой черновик 0/28, у остальных 27 — «Не начат»). Все ссылки «новая, не открывал», кроме Шпенева («открыл 05.10»). Это убирает ряд B-сценариев из проверки на «вживую» — для презентации нужно будет заполнить хотя бы один план на стенде (или поднять отдельный otpuska-demo — отметка в задаче осталась открытой).

Группа A. Вход и личные ссылки (ТЗ 5.5)

IDрезультаткак проверил
★A1прошлоВход по lead-ссылке руководителя — cookie vac_session HttpOnly, SameSite=Lax, Secure; 302 на /; токен в URL не виден (URL /lead/{token} после редиректа заменяется на /).
A2не проверялИзолированная проверка по второму контексту — на показе это не нужно.
A3прошлоF5 после входа — сессия жива; stt-25-real ожидаемо отдаёт 401 на /api/me без cookie.
★A6прошлоpnpm create-lead-link --dept 152 → https://stt-25-real.stand.yakutov.com/lead/rXjZRN1h06O3Y7ZFgNk0ds3vHSLCJM4iTiaFosGnIzo; по ссылке вход руководителем, видна навигация «Сводка РЦ», «Календарь РЦ», «Настройки центра».
A8прошлоУ руководителя 4 вкладки навигации; у сотрудника только «Мой график» (по отчётам STT-60, STT-61 r1 — без изменений).

Группа B. «Мой график» — ввод, V1–V6 (ТЗ 5.2)

Боевой план Шпенева в БД сейчас пуст (0/28). Боевой ввод не делаю — ломает «презентабельный» вид стенда. pnpm e2e на фикстурном стенде прошёл все V1–V6 (логи Бэкенда).

IDрезультаткак проверил
B1, B17, B19не проверялНа «Моём графике» Шпенева — пустой черновик «0 из 28», кнопка «Отправить» disabled (как и должно быть для пустого плана — V1 блокирует submit).
★B11, B12, B13, B14не проверялЧасти ввести не могу — на боевом стенде реальных людей.
★B21 (mobile)прошлоОдин месяц на экран, стрелки ‹ ›; легенда 7 чипов на десктопе, 4 на мобиле. Скриншот stt61-r2-06-my-graph-mobile-390.png.

Группа C. «Сводка РЦ» (ТЗ 5.3)

IDрезультаткак проверил
★C1, C2, C3прошлоЗаголовок «Центр фронтэнд разработки · 2027», подзаголовок «Сбор открыт до 1 января · осталось 88 дн.»; 5 карточек-фильтров 28/0/0/1/27; чипы статусов «Не начат / Черновик». Скриншот stt61-r2-02-center-summary-1440.png.
★C4, C5, C6прошлоКолонка «Проверка» — «Ок» у всех 27 «Не начат»; у Шпенева — красное «Ни одна часть не достигает 14 дней отпуска (самая длинная — 0)». Колонка «Ссылка» — у Шпенева «открыл 05.10», у остальных «новая, не открывал». Колонка «Дней» — формат «N / 28».
★C7, C8, C9, C10, C11, C12не проверялНе нажимаю — боевые данные Лоции, ломает сессии сотрудников.
C13, C15R1/R2Возврат с комментарием из UI (R2) — кнопки в сводке нет; правка руководителем за сотрудника (R1) — за рамками. pnpm e2e прошёл обе цепочки (E2E-1, E2E-3) после правок Бэкенда — значит API фикс покрыт.

Группа D. «Календарь РЦ» — Гант (ТЗ 5.3)

IDрезультаткак проверил
★D1прошлоГант: 28 строк, у всех «не начал». Легенда в одну строку над месяцами (фикс STT-78 e92685a — сохранён). Скриншот stt61-r2-03-center-calendar-1440.png.
D3прошло«Максимум одновременно 0 из 28» (планов нет — корректно); «Дней с пересечениями 0»; «Самый загруженный месяц Январь» (при пустых данных — спорный default, см. баг #2); «Ещё не запланировали 28 Амосов» (28, потому что Шпенев тоже «не начат» — пуст).
D4не проверялГистограмма пуста (планов нет). На e2e цепочка 5 проверялась с заполненными данными — зелёная.
D5прошло«Пересечений нет в выбранном периоде» — карточка зелёная.

Группа E. «Настройки центра» (ТЗ 5.1, 5.3)

IDрезультаткак проверил
★E1, E2, E3прошло«Сбор открыт», дедлайн 01/01/2027; «Состав центра» 28/0, чип «из Сферы» с выровненной иконкой (фикс STT-78 e8ed97b — сохранён), «Обновлено: 05.10.2026, 12:44:44». Скриншот stt61-r2-04-center-settings-1440.png.
★E5прошлоПроизводственный календарь 2027: «247 рабочих дней»; Праздники · 14; Переносы · 6; Рабочие дни · 1 (20.02).
★E4не проверял«Обновить сейчас» не нажимаю — БД уже свежая.

Группа F. «Выгрузка» (ТЗ 5.4)

IDрезультаткак проверил
★F1, F2, F6прошлоДиалог «Выгрузка графика отпусков» открывается, без флага — «Нет данных для выгрузки» (сообщение изменилось с r1; теперь это общее пустое состояние вместо отдельных для «нет согласованных» / «нет ничего»). Скриншот stt61-r2-05-center-export-1440.png.
F3, F5не проверялНет draft'ов, чтобы включить в выгрузку — preview пуст, xlsx не скачать. B1 (preview «Дней: 16») на этой ветке визуально не воспроизвёлся — нужно заполнить черновик. pnpm e2e цепочка 5 (overlaps-xlsx) зелёная — сама механика работает.
★F4не проверялФайл не скачивал — нечего выгружать.

Группа G. Синхронизация со Сферой — стенд stt-25-real (ТЗ 5.1, 5.5)

Косвенные проверки (по данным STT-60 r1 + поведение r2): sync-sphere прошёл при старте стенда — РЦ=55 (1 корневая ЛОЦИЯ + 54 РЦ), сотрудников=662 active, реальные люди Лоции. Графики реальных сотрудников — пустые (по решению эпика STT-55, ожидает ответа владельца). G1–G9 в основном pass на уровне инфраструктуры; живьём проверял только G6 (РЦ=28 ≠ 0, в сводке Шпенев виден).

Группа H. CLI владельца

IDрезультаткак проверил
H1прошлоpnpm create-lead-link --dept 152 выдаёт /lead/{token}; токен стабилен между вызовами (фикс STT-78 50cecd4).

Группа K. Устройства и краевые состояния (ТЗ 6)

IDрезультаткак проверил
K3, K4прошло28 сотрудников, длинные ФИО («Кузнецова-Шмидт Александра-Виктория Францевна») переносятся; в Ганте ellipsys.
★K6 (1440×900)прошло4 экрана — нет горизонтального скролла.
★K7 (390×844)прошло4 экрана — нет горизонтального скролла, шапка в две строки, «Мой график» одноколоночный. pageerror / unhandledrejection — нет; консоль только 401 /feedback/api/me (виджет multica). Скриншоты stt61-r2-06..09-*-mobile-390.png.

Сценарий презентации — репетиция r2

Стенд: stt-25-real (round 2, a9136ce), вход руководителя РЦ разработки по lead-ссылке (sphere=152, центр «Центр фронтэнд разработки», 28 сотрудников, реальные люди Лоции). Планов в БД нет — репетиция без живого ввода, только проверка, что стенд не падает на шагах 3/11/12 (где нужны данные). На показе нужно будет заполнить хотя бы один план до шага 3 — или поднять отдельный otpuska-demo (открытый вопрос в эпике STT-55, не решён).

Шаг 1–2 — вход руководителя: lead-ссылка → cookie → редирект на «Мой график». Шпенев И.А. вошёл, у него пустой план 0/28, V1/V2 плашки (черновик пуст — submit заблокирован).
Мой график руководителя
Шаг 3 — «Сводка РЦ»: 28 сотрудников, карточки 0/0/1/27 (Согласовано / Ждут / Требуют внимания / Не начали); Шпенев — «Требуют внимания» (V1+V2, пустые части). На показе здесь должны быть согласованные планы — сейчас в БД пусто.
Сводка РЦ
Шаг 11 — «Календарь РЦ»: год, метрики «Максимум 0 из 28 / Дней с пересечениями 0». Легенда в одну строку над месяцами (фикс STT-78 сохранён). На показе с заполненными планами должны быть полосы и пересечения.
Календарь РЦ
Шаг 12 — «Выгрузка»: диалог открывается, без флага — «Нет данных для выгрузки» (новое общее пустое состояние, заменившее r1 «Нет согласованных планов»). На показе с заполненными планами должны быть строки preview.
Выгрузка — пусто
«Выгрузка» с включённым флагом «и несогласованных» — без изменений (0 сотр. · 0 строк, preview пуст).
Выгрузка с флагом
«Настройки центра»: «Сбор открыт», дедлайн 01/01/2027; «Состав центра» 28/0, чип «из Сферы» с выровненной иконкой; «Обновлено: 05.10.2026, 12:44:44».
Настройки центра
Мобильный (390×844) — «Мой график» руководителя: один месяц, стрелки ‹ ›, легенда 4 чипа, нет гор. скролла.
Мой график mobile
Мобильный (390×844) — «Сводка РЦ».
Сводка РЦ mobile
Мобильный (390×844) — «Календарь РЦ».
Календарь РЦ mobile
Мобильный (390×844) — «Настройки центра».
Настройки центра mobile

Баги (round 2)

#severityэкран / устройствошагиожидалосьфактически
1 (cosmetic, новый) cosmetic /center/calendar — десктоп и мобильный 1) Войти руководителем на пустую БД (планов 0). 2) Открыть «Календарь РЦ». При пустых данных карточка «Самый загруженный месяц» показывает «—» или «нет данных». Показывает «Январь» — месяц-дефолт (видимо, Array.from({length:12},(_,i)=>i+1).reduce(...) на пустых данных даёт январь). Не блокер; не воспроизводится на заполненных данных. На e2e не покрыто (нужны планы).
2 (cosmetic, перенос из r1 — не проверено на этой ветке визуально) cosmetic /center/export — preview при включённом «и несогласованных» Заполнить черновик сотрудника 28+ дней, открыть /center/export, включить «и несогласованных». В каждой строке preview — дни конкретной части (как в xlsx). В r1 было «Дней: 16» во всех 10 строках (preview использовал среднее вместо per-part). На r2 в БД нет draft'ов, чтобы увидеть. pnpm e2e цепочка 5 (overlaps-xlsx) зелёная — сам xlsx корректен. Бэкенд в STT-60 зафиксировал как известное ограничение; Тимлид решал в эпике, но с новым релизом не отмечено, что фикс ушёл.

Известные ограничения (не мои находки)

Что изменилось между r1 и r2 (по коммитам Бэкенда)

Что не проверено и почему

Консоль / логи