650bce809a
Status choices in the Проекты list are Текущий / Архивный, so the legacy archive rule matches real data; the projects portal writes its own status to the API catalogue, which StroyBot does not read. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
22 KiB
22 KiB
План ручной проверки StroyBot
Пошаговая проверка нового приложения перед выкаткой. Дополняет MIGRATION-CHECKLIST.md (там — список функций, здесь — что нажать и что должно получиться).
Правила
- Всё, что записывает данные (создать / изменить / удалить / импорт / утвердить), — только на проекте «ТЕСТ StroyBot». Такие сценарии помечены ✍️.
- Всё, что только читает, проверяем на настоящих проектах — сравнением со старой страницей (см. «Главный приём»).
- Нашёл расхождение — не исправляй ничего сам, запиши по шаблону «Как сообщить о баге» и иди дальше.
- Оформление — в стиле ui-kit (решение 2026-10-16). Отличия во внешнем виде от старых страниц (раскладка, цвета, регистр подписей) багом не считаются. Сравниваем функции, тексты, данные, права. Баг по виду — только если что-то не видно, обрезано, наезжает или не нажимается.
- Отметки:
[x]— совпало,[!]— баг (номер бага рядом),[-]— не применимо.
0. Подготовка (один раз)
0.1 Тестовые данные в SharePoint (/sites/stroy)
- В списке «Проекты» создать проект «ТЕСТ StroyBot», статус текущий. Записать его
Id(видно в адресе элемента):Id = ____. - В списке «Доступы» создать строку: проект = «ТЕСТ StroyBot», пользователь = ты,
read= да,edit0= да,aproove= нет.- Это разные поля в разных старых web parts (lookup
project/userи поляprojectId/userId). Если при создании строки видно оба набора — заполни оба. Запиши, какие поля реально есть в списке:________________.
- Это разные поля в разных старых web parts (lookup
- В списке «Объекты» — пока ничего, объекты создадим в приложении (T-OBJ).
- Убедись, что в «Смены», «Компании», «Профессии», «Техника», «Единицы измерения» есть хотя бы по 2 элемента.
0.2 Переключение ролей одним аккаунтом
Роли меняются правкой твоей строки «Доступы» у «ТЕСТ StroyBot», статус проекта — полем Status в «Проекты». После правки — F5 в приложении.
| Роль | read | edit0 | aproove |
|---|---|---|---|
| Р — только чтение | да | нет | нет |
| Е — редактор | да | да | нет |
| У — утверждающий | да | нет | да |
| Н — нет доступа | нет | нет | нет |
Начальная роль — Е.
0.3 Запуск workbench
- В терминале VS Code (
Ctrl+`) в папкеstroy-bot-monorepo:npx heft start. ДождатьсяStarting server. - Открыть
https://tnsukz.sharepoint.com/sites/stroy/_layouts/workbench.aspx(именно на сайте stroy, не корневом). - Разрешить загрузку отладочных скриптов, если браузер спросит.
- + → web part StroyBot.
- Держать открытыми F12 → Console и F12 → Network (фильтр
Fetch/XHR) — туда смотрим при любой ошибке.
Workbench не умеет одобрять API-разрешения. Если Dataverse или выгрузки упадут с ошибкой доступа/токена — это ожидаемо до выкатки пакета; помечай
[!]с текстом ошибки, разберёмся.
Главный приём — сравнение со старой страницей
Для любого раздела, который показывает данные:
- Открыть старую страницу раздела (из старого stroy-bot-main) для проекта X.
- Открыть новый раздел в workbench для того же проекта X.
- Сравнить: количество строк, названия, числа, даты, порядок, бейджи, какие кнопки видны.
Проекты для сравнения — 2 настоящих: один большой (много объектов и отчётов), один маленький. Запиши:
- Большой:
________________(Id__) - Маленький:
________________(Id__)
1. Оболочка — T-APP
- T-APP-01 Открыть web part. Слева меню с одним пунктом «Проект», справа главная. Ошибок в Console нет.
- T-APP-02 Выбрать проект → в меню появились разделы. Нажать «Объекты» → адрес стал
…?page=objects&projectId=…. - T-APP-03 Нажать «назад» в браузере → вернулись на главную. «Вперёд» → снова объекты.
- T-APP-04 Скопировать адрес раздела, открыть в новой вкладке → открылся тот же раздел того же проекта.
- T-APP-05 F5 на любом разделе → остались в нём.
- T-APP-06 В той же вкладке удалить из адреса
&page=…&projectId=…, Enter, заново добавить web part → на главной уже выбран прежний проект, меню — со всеми разделами. (Выбор хранится вsessionStorage— он живёт только в пределах вкладки; после закрытия вкладки не сохраняется — так было и в старом main.) - T-APP-07 Шрифты подгрузились: заголовки разделов — с засечками (Lora), остальной текст — Inter.
- T-APP-08 Узкое окно (< 768px) → меню прячется, появляется кнопка-бургер, меню открывается поверх.
2. Главная — T-HUB (сравнение со старым stroy-bot-main)
- T-HUB-01 Клик в поле «Проект» → список; набор совпадает со старым main; сверху до 7 недавно активных.
- T-HUB-02 Ввести часть названия (разный регистр) → фильтруется, не больше 7 строк; несуществующее → «Проекты не найдены».
- T-HUB-03 Esc и клик мимо → список закрылся, в поле — выбранный проект.
- T-HUB-04 Бейджи статусов совпадают по цвету: текущий — зелёный, завершён — серый, архивный — золотой, пусто — «Без статуса».
- T-HUB-05 Без выбранного проекта все карточки неактивны, видна подсказка.
- T-HUB-06 «ТЕСТ StroyBot», роль Е, статус текущий → все 6 карточек активны; меню — все разделы.
- T-HUB-07 Роль Р → неактивна только «Отправить отчёт»; в меню нет «Отправить отчёт» и «Привязка к справочнику».
- [-] T-HUB-08 Статус «завершен» — не применимо: в SharePoint у поля «Статус» только «Текущий» и «Архивный» (проверено 2026-10-16). Правило в коде остаётся на случай, если вариант появится.
- T-HUB-09 Статус «Архивный» (менять в SharePoint, список «Проекты») → бейдж золотой, активен только «Архив», выгрузка неактивна, в меню только «Проект». Вернуть «Текущий».
- ⚠️ Статус меняем в списке SharePoint, а не на портале проектов: портал пишет статус («Текущий» / «Архив») в справочник API, StroyBot его не читает.
- T-HUB-10 «Архив проекта» → в новой вкладке папка
Документы/Архив/{проект}(та же, что открывает старый main). - T-HUB-11 Ctrl+клик по карточке «Объекты» → раздел открылся в новой вкладке.
- T-HUB-12 Выгрузка: «?» показывает 3 строки и закрывается кликом мимо. Даты 13.10–19.10 → «Отчёт за период»; 12.10–18.10 (Пн–Вс) → «Еженедельный»; один день → «Ежедневный»; начало позже конца → ошибка, кнопка неактивна.
- T-HUB-13 «Выгрузить» на большом проекте за неделю → скачался
weekly_…xlsx. Сравнить с файлом из старого main за тот же период — содержимое одинаковое.
3. Ресурсы проекта — T-RES
- T-RES-01 Большой проект: вкладки «Профессии (N)», «Компании (N)» — числа и списки совпадают со старой страницей.
- T-RES-02 Поиск слева, «✕» очищает; «уже добавлено» у привязанных.
- ✍️ T-RES-03 «ТЕСТ StroyBot»: «+» у профессии → сразу справа; F5 → осталась. Проверить строку в «Профессии по проекту».
- ✍️ T-RES-04 «−» → исчезла; F5 → не вернулась; строка удалена из списка.
- ✍️ T-RES-05 То же для компании.
- T-RES-06 Узкое окно → колонки друг под другом.
4. Привязка к справочнику — T-BND
- T-BND-01 Большой проект: карточка проекта (описание, адрес, статус, даты, координаты) совпадает со старой страницей; бейдж «Привязан/Не привязан» тот же.
- T-BND-02 Поиск по справочнику: результаты, «←/→», «стр / всего» — как в старой.
- ✍️ T-BND-03 «ТЕСТ StroyBot»: выбрать проект справочника → «Связать» → сообщение успеха, бейдж «Привязан». В «Проекты» заполнились
UniqueId0,UniqueName. - ✍️ T-BND-04 «Отвязать» → «Привязка удалена», поля очищены. Снова привязать (нужно для T-IMP).
5. Объекты — T-OBJ
- T-OBJ-01 Большой проект: число объектов в тулбаре и дерево (названия, вложенность, счётчики детей) совпадают со старой страницей.
- T-OBJ-02 «Развернуть» / «Свернуть», клик по строке раскрывает.
- T-OBJ-03 Роль Р → нет «Добавить объект», нет меню ⋮, нет перетаскивания.
- ✍️ T-OBJ-04 «ТЕСТ StroyBot», роль Е: пустое дерево → «Объекты не найдены» + кнопка. Добавить объект-пятно «Корпус 1».
- ✍️ T-OBJ-05 Меню ⋮ у «Корпус 1» → «Добавить объект» → «Раздел» «Фундамент». У «Фундамент» → «Вид работ» «Бетонирование». У вида работ нет пункта «Добавить объект».
- ✍️ T-OBJ-06 Пустое название → сообщение «Поле обязательно…»; Enter сохраняет.
- ✍️ T-OBJ-07 Редактировать «Фундамент» → сменить родителя (нужен второй объект-пятно «Корпус 2»).
- ✍️ T-OBJ-08 Перетащить объект на другой → родитель сменился; на своего потомка — запрещено.
- ✍️ T-OBJ-09 Удалить объект с детьми → подтверждение с числом детей; дети остаются (🐞 так было).
- T-OBJ-10 «Экспорт» → скачался
objects-{id}.xlsx, содержимое как у старой страницы. - T-OBJ-11 Меню ⋮ → «Работы» → открылся раздел «Работы» этого объекта.
6. Работы — T-WRK
- T-WRK-01 Объект большого проекта: список работ, единицы, объёмы (3 знака), даты, вложенность — как в старой странице.
- T-WRK-02 Родители свёрнуты; нумерация считает только видимые строки.
- ✍️ T-WRK-03 «ТЕСТ StroyBot», «Бетонирование»: «Добавить работу» «Бетон В25», м3, 12.5, даты.
- ✍️ T-WRK-04 «Сохранить и добавить еще» → окно не закрылось, поля пустые, родитель тот же.
- ✍️ T-WRK-05 ⋮ → «Добавить дочернюю» → родитель предвыбран.
- ✍️ T-WRK-06 «Редактировать» дочернюю → убрать родителя → сохранить → стала корневой.
- ✍️ T-WRK-07 В списке «Родительская работа» при правке нет самой работы и её потомков.
- ✍️ T-WRK-08 Удалить → «Подтвердите удаление» → исчезла.
- T-WRK-09 Роль Р → нет кнопок добавления и меню ⋮.
7. Импорт работ — T-IMP
- T-IMP-01 Проект без привязки к справочнику → «Проект не привязан к справочнику…».
- T-IMP-02 Большой привязанный проект: «Загрузка работ… X из Y», затем число работ совпадает со старой страницей.
- T-IMP-03 Поиск (код СНБ, объём, название), страницы по 100.
- ✍️ T-IMP-04 «ТЕСТ StroyBot» (привязан в T-BND-04): выбрать объект → отметить 2 работы → «Импортировать» → тост «✓ Успешно импортировано: 2»; строки стали «✓ импортировано» и неактивны.
- ✍️ T-IMP-05 Работы появились в разделе «Работы» этого объекта.
- ✍️ T-IMP-06 «Импорт с созданием объекта» → в «Объекты» созданы объект и раздел из сметы, работы — под ними.
- T-IMP-07 «Импортировать» без объекта → тост «Выберите объект…».
8. Отчёты по проекту — T-RPL
- T-RPL-01 Большой проект, текущая неделя: число карточек, номера, даты, авторы, компании, объекты — как в старой странице.
- T-RPL-02 Сменить период → «Применить» → совпадает со старой за тот же период.
- T-RPL-03 Поиск по автору, компании, объекту, комментарию.
- T-RPL-04 Роль Н → «Нет доступа».
- T-RPL-05 Роль Р → нет «Отправить отчёт», копирования и удаления.
- T-RPL-06 Клик по карточке → форма отчёта в новой вкладке с
reportId.
9. Форма отчёта — T-REP (самое важное)
Роль Е, «ТЕСТ StroyBot», объекты и работы из T-OBJ / T-WRK.
- ✍️ T-REP-01 «Отправить отчёт» → «Новый отчет», дата — сегодня, смена — первая.
- ✍️ T-REP-02 «Сохранить» пустым → все 5 ошибок валидации, тексты как в старой форме.
- ✍️ T-REP-03 Выбрать объект, компанию; «+ Выбрать работу» → работы объекта; drill-down по родителям; «Выбрать «X»».
- ✍️ T-REP-04 У работы: значение 3.5, комментарий; «Персонал на работе» + профессия (2 чел., 8 ч); «Техника на работе» + техника.
- ✍️ T-REP-05 Общий персонал с типом «Часы простоя» без комментария → ошибка валидации; с комментарием — ок.
- ✍️ T-REP-06 Общая техника «Часы ремонта» + комментарий.
- ✍️ T-REP-07 Добавить 2 фото → превью; удалить одно.
- ✍️ T-REP-08 «Сохранить отчет» → «Отчет успешно сохранен!», кнопка стала «← Вернуться назад». Записать номер отчёта:
№ ____. - ✍️ T-REP-09 Проверить в данных: отчёт в Dataverse; строки — работа, её персонал и техника с родителем = строка работы, общий персонал и техника без родителя; фото в
DocLib/{projectId}_{номер}. - ✍️ T-REP-10 Открыть отчёт из «Отчёты по проекту» → режим правки, всё заполнено как сохраняли (включая персонал внутри работы).
- ✍️ T-REP-11 Изменить значение работы, удалить общую технику → сохранить → открыть заново → изменения на месте, лишних и задвоенных строк нет.
- ✍️ T-REP-12 Сменить объект в форме → работы очистились.
- ✍️ T-REP-13 «Создать на основе» (копирование) → новая форма, всё скопировано, дата — сегодня, фото — пусто; сохранить → новый номер.
- ✍️ T-REP-14 Пикер техники: группы, фильтр, «Все». Создать новую технику из пикера → появилась в списке «Техника».
- ✍️ T-REP-15 Пикер работ: создать новую работу (ед., план, родитель) → появилась в «Работах» объекта.
- ✍️ T-REP-16 Роль У → открыть неутверждённый отчёт → «На утверждении», поля только для чтения, «Утвердить отчет» → подтверждение → «Отчет утвержден!», бейдж «Утверждён».
- ✍️ T-REP-17 Роль Е → утверждённый отчёт открывается только для чтения.
- T-REP-18 Роль Р → отчёт только для чтения, кнопок нет.
- T-REP-19 Роль Н → «Нет доступа» при открытии существующего отчёта.
- T-REP-20 Большой проект: открыть 3 разных старых отчёта → всё совпадает со старой формой (план-факт, персонал, техника, фото-папка).
- T-REP-21 «← Вернуться назад» → вернулись туда, откуда пришли.
- T-REP-22 Enter в любом поле не перезагружает страницу.
- ✍️ T-REP-23 Удалить тестовый отчёт из «Отчёты по проекту» → «Удалить отчёт?» → пропал из списка (мягкое удаление).
Как сообщить о баге
Скопируй и заполни:
Баг: T-XXX-NN
Роль / проект: Е / ТЕСТ StroyBot
Что сделал: 1) … 2) … 3) …
Ожидал: …
Получил: …
Старая страница в этом случае: … (если сравнивал)
Console (F12): текст красной ошибки
Network (F12): красный запрос — адрес и ответ (вкладка Response)
Скриншот: (если про внешний вид)
Итог
| Раздел | Пройдено | Багов |
|---|---|---|
| Оболочка | ||
| Главная | ||
| Ресурсы | ||
| Привязка | ||
| Объекты | ||
| Работы | ||
| Импорт | ||
| Отчёты по проекту | ||
| Форма отчёта |