{ "generatedAt": "2026-10-09T16:53:09.849Z", "summary": { "overall": 66, "total": 195, "done": 129, "byPriority": { "P1": { "pct": 97, "total": 32, "done": 31 }, "P2": { "pct": 100, "total": 14, "done": 14 }, "P3": { "pct": 81, "total": 63, "done": 51 }, "P4": { "pct": 38, "total": 86, "done": 33 } }, "targets": { "P1": 95, "P2": 95, "P3": 80, "P4": 70 } }, "screens": [ { "route": "/catalog/products", "page": "ProductsPage", "file": "pages/ProductsPage.tsx", "priority": "P1", "title": "Здесь пока пусто", "listUrl": "/api/catalog/products", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "export", "label": "экспорт (/api/catalog/products/export)", "type": "export", "covered": true, "how": "экспорт→/export&format=" }, { "key": "sort:name", "label": "сортировка: Название", "type": "sort", "covered": true, "how": "клик «Название»→sort=name" }, { "key": "sort:packaging", "label": "сортировка: Фасовка", "type": "sort", "covered": true, "how": "клик «Фасовка»→sort=packaging" }, { "key": "sort:cost", "label": "сортировка: Себестоимость", "type": "sort", "covered": true, "how": "клик «Себестоимость»→sort=cost" }, { "key": "sort:systemPrice", "label": "сортировка: Розничная цена", "type": "sort", "covered": true, "how": "клик «Розничная цена»→sort=systemPrice" }, { "key": "sort:vat", "label": "сортировка: НДС", "type": "sort", "covered": true, "how": "клик «НДС»→sort=vat" }, { "key": "filter:все", "label": "фильтр: все", "type": "filter", "covered": true, "how": "смена фильтра→новый запрос списка" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:create", "label": "действие: создать", "type": "action", "covered": true, "how": "переход на создание" } ], "pct": 91, "done": 10 }, { "route": "/inventory/stock", "page": "StockPage", "file": "pages/StockPage.tsx", "priority": "P1", "title": "Остатки", "listUrl": "/api/inventory/stock", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "export", "label": "экспорт (/api/inventory/stock/export)", "type": "export", "covered": true, "how": "экспорт→/export&format=" }, { "key": "sort:name", "label": "сортировка: Товар", "type": "sort", "covered": true, "how": "клик «Товар»→sort=name" }, { "key": "sort:store", "label": "сортировка: Склад", "type": "sort", "covered": true, "how": "клик «Склад»→sort=store" }, { "key": "sort:unit", "label": "сортировка: Ед.", "type": "sort", "covered": true, "how": "клик «Ед.»→sort=unit" }, { "key": "sort:quantity", "label": "сортировка: Остаток", "type": "sort", "covered": true, "how": "клик «Остаток»→sort=quantity" }, { "key": "sort:reserved", "label": "сортировка: Резерв", "type": "sort", "covered": true, "how": "клик «Резерв»→sort=reserved" }, { "key": "sort:available", "label": "сортировка: Доступно", "type": "sort", "covered": true, "how": "клик «Доступно»→sort=available" }, { "key": "filter:все-склады", "label": "фильтр: Все склады", "type": "filter", "covered": true, "how": "смена фильтра→новый запрос списка" }, { "key": "toggle:показать-нулевые", "label": "переключатель: Показать нулевые", "type": "toggle", "covered": true, "how": "тумблер→новый запрос списка" }, { "key": "toggle:только-минусы", "label": "переключатель: Только минусы", "type": "toggle", "covered": true, "how": "тумблер→новый запрос списка" } ], "pct": 100, "done": 12 }, { "route": "/sales/retail", "page": "RetailSalesPage", "file": "pages/RetailSalesPage.tsx", "priority": "P1", "title": "Розничные продажи", "listUrl": "/api/sales/retail", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "export", "label": "экспорт (/api/sales/retail/export)", "type": "export", "covered": true, "how": "экспорт→/export&format=" }, { "key": "sort:number", "label": "сортировка: №", "type": "sort", "covered": true, "how": "клик «№»→sort=number" }, { "key": "sort:date", "label": "сортировка: Дата/время", "type": "sort", "covered": true, "how": "клик «Дата/время»→sort=date" }, { "key": "sort:status", "label": "сортировка: Статус", "type": "sort", "covered": true, "how": "клик «Статус»→sort=status" }, { "key": "sort:store", "label": "сортировка: Магазин", "type": "sort", "covered": true, "how": "клик «Магазин»→sort=store" }, { "key": "sort:total", "label": "сортировка: Сумма", "type": "sort", "covered": true, "how": "клик «Сумма»→sort=total" }, { "key": "action:create", "label": "действие: создать", "type": "action", "covered": true, "how": "переход на создание" } ], "pct": 100, "done": 9 }, { "route": "/money/shifts", "page": "CashShiftsPage", "file": "pages/money/CashShiftsPage.tsx", "priority": "P2", "title": "Смены кассы", "listUrl": "/api/money/shifts", "elements": [ { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "action:print", "label": "действие: печать", "type": "action", "covered": true, "how": "элемент присутствует" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": true, "how": "открытие смены→POST 2xx" } ], "pct": 100, "done": 3 }, { "route": "/purchases/supplies", "page": "SuppliesPage", "file": "pages/SuppliesPage.tsx", "priority": "P2", "title": "Приёмки от поставщиков", "listUrl": "/api/purchases/supplies", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "export", "label": "экспорт (/api/purchases/supplies/export)", "type": "export", "covered": true, "how": "экспорт→/export&format=" }, { "key": "sort:number", "label": "сортировка: №", "type": "sort", "covered": true, "how": "клик «№»→sort=number" }, { "key": "sort:date", "label": "сортировка: Дата", "type": "sort", "covered": true, "how": "клик «Дата»→sort=date" }, { "key": "sort:status", "label": "сортировка: Статус", "type": "sort", "covered": true, "how": "клик «Статус»→sort=status" }, { "key": "sort:supplier", "label": "сортировка: Поставщик", "type": "sort", "covered": true, "how": "клик «Поставщик»→sort=supplier" }, { "key": "sort:store", "label": "сортировка: Склад", "type": "sort", "covered": true, "how": "клик «Склад»→sort=store" }, { "key": "sort:total", "label": "сортировка: Сумма", "type": "sort", "covered": true, "how": "клик «Сумма»→sort=total" }, { "key": "filter:оплата-все", "label": "фильтр: Оплата: все", "type": "filter", "covered": true, "how": "смена фильтра→новый запрос списка" }, { "key": "action:create", "label": "действие: создать", "type": "action", "covered": true, "how": "открылась форма" } ], "pct": 100, "done": 11 }, { "route": "/catalog/counterparties", "page": "CounterpartiesPage", "file": "pages/CounterpartiesPage.tsx", "priority": "P3", "title": "Контрагенты", "listUrl": "/api/catalog/counterparties", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "export", "label": "экспорт (/api/catalog/counterparties/export)", "type": "export", "covered": true, "how": "экспорт→/export&format=" }, { "key": "sort:name", "label": "сортировка: Название", "type": "sort", "covered": true, "how": "клик «Название»→sort=name" }, { "key": "sort:type", "label": "сортировка: Тип", "type": "sort", "covered": true, "how": "клик «Тип»→sort=type" }, { "key": "sort:phone", "label": "сортировка: Телефон", "type": "sort", "covered": true, "how": "клик «Телефон»→sort=phone" }, { "key": "sort:country", "label": "сортировка: Страна", "type": "sort", "covered": true, "how": "клик «Страна»→sort=country" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": true, "how": "создание→POST 2xx" } ], "pct": 89, "done": 8 }, { "route": "/catalog/data-quality", "page": "DataQualityPage", "file": "pages/DataQualityPage.tsx", "priority": "P3", "title": "Проверка данных", "listUrl": "", "elements": [ { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" } ], "pct": 0, "done": 0 }, { "route": "/inventory/enters", "page": "EntersPage", "file": "pages/EntersPage.tsx", "priority": "P3", "title": "Оприходования", "listUrl": "/api/inventory/enters", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "sort:number", "label": "сортировка: №", "type": "sort", "covered": true, "how": "клик «№»→sort=number" }, { "key": "sort:date", "label": "сортировка: Дата", "type": "sort", "covered": true, "how": "клик «Дата»→sort=date" }, { "key": "sort:status", "label": "сортировка: Статус", "type": "sort", "covered": true, "how": "клик «Статус»→sort=status" }, { "key": "sort:store", "label": "сортировка: Склад", "type": "sort", "covered": true, "how": "клик «Склад»→sort=store" }, { "key": "sort:total", "label": "сортировка: Сумма", "type": "sort", "covered": true, "how": "клик «Сумма»→sort=total" }, { "key": "action:create", "label": "действие: создать", "type": "action", "covered": false, "how": "не открылось" } ], "pct": 88, "done": 7 }, { "route": "/inventory/inventories", "page": "InventoriesPage", "file": "pages/InventoriesPage.tsx", "priority": "P3", "title": "Инвентаризации", "listUrl": "/api/inventory/inventories", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "sort:number", "label": "сортировка: №", "type": "sort", "covered": true, "how": "клик «№»→sort=number" }, { "key": "sort:date", "label": "сортировка: Дата", "type": "sort", "covered": true, "how": "клик «Дата»→sort=date" }, { "key": "sort:status", "label": "сортировка: Статус", "type": "sort", "covered": true, "how": "клик «Статус»→sort=status" }, { "key": "action:create", "label": "действие: создать", "type": "action", "covered": true, "how": "открылась форма" } ], "pct": 100, "done": 6 }, { "route": "/inventory/losses", "page": "LossesPage", "file": "pages/LossesPage.tsx", "priority": "P3", "title": "Списания", "listUrl": "/api/inventory/losses", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "sort:number", "label": "сортировка: №", "type": "sort", "covered": true, "how": "клик «№»→sort=number" }, { "key": "sort:date", "label": "сортировка: Дата", "type": "sort", "covered": true, "how": "клик «Дата»→sort=date" }, { "key": "sort:status", "label": "сортировка: Статус", "type": "sort", "covered": true, "how": "клик «Статус»→sort=status" }, { "key": "sort:reason", "label": "сортировка: Причина", "type": "sort", "covered": true, "how": "клик «Причина»→sort=reason" }, { "key": "sort:store", "label": "сортировка: Склад", "type": "sort", "covered": true, "how": "клик «Склад»→sort=store" }, { "key": "sort:total", "label": "сортировка: Сумма", "type": "sort", "covered": true, "how": "клик «Сумма»→sort=total" }, { "key": "action:create", "label": "действие: создать", "type": "action", "covered": false, "how": "не открылось" } ], "pct": 89, "done": 8 }, { "route": "/inventory/movements", "page": "StockMovementsPage", "file": "pages/StockMovementsPage.tsx", "priority": "P3", "title": "Движения", "listUrl": "/api/inventory/movements", "elements": [ { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "sort:occurredAt", "label": "сортировка: Дата", "type": "sort", "covered": true, "how": "клик «Дата»→sort=occurredAt" }, { "key": "sort:type", "label": "сортировка: Операция", "type": "sort", "covered": true, "how": "клик «Операция»→sort=type" }, { "key": "sort:product", "label": "сортировка: Товар", "type": "sort", "covered": true, "how": "клик «Товар»→sort=product" }, { "key": "sort:store", "label": "сортировка: Склад", "type": "sort", "covered": true, "how": "клик «Склад»→sort=store" }, { "key": "sort:quantity", "label": "сортировка: Количество", "type": "sort", "covered": true, "how": "клик «Количество»→sort=quantity" }, { "key": "sort:documentType", "label": "сортировка: Документ", "type": "sort", "covered": true, "how": "клик «Документ»→sort=documentType" }, { "key": "filter:все-склады", "label": "фильтр: Все склады", "type": "filter", "covered": true, "how": "смена фильтра→новый запрос списка" } ], "pct": 100, "done": 8 }, { "route": "/money/report", "page": "MoneyReportPage", "file": "pages/money/MoneyReportPage.tsx", "priority": "P3", "title": "Отчёт «Деньги»", "listUrl": "/api/money/reports/balances", "elements": [ { "key": "filter:period", "label": "фильтр: период/дата", "type": "filter", "covered": false, "how": "период не изменил выдачу" } ], "pct": 0, "done": 0 }, { "route": "/money/supplier-debts", "page": "SupplierDebtsPage", "file": "pages/money/SupplierDebtsPage.tsx", "priority": "P3", "title": "Долги поставщикам", "listUrl": "/api/money/reports/supplier-debts", "elements": [ { "key": "action:post", "label": "действие: провести", "type": "action", "covered": false, "how": "не найден здесь" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": false, "how": "сохранение не удалось" } ], "pct": 0, "done": 0 }, { "route": "/money/transactions", "page": "MoneyTransactionsPage", "file": "pages/money/MoneyTransactionsPage.tsx", "priority": "P3", "title": "Платежи и ордера", "listUrl": "/api/money/transactions", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": false, "how": "список пуст — пагинации нет" }, { "key": "filter:все-статусы", "label": "фильтр: Все статусы", "type": "filter", "covered": true, "how": "смена фильтра→новый запрос списка" }, { "key": "filter:все-типы", "label": "фильтр: Все типы", "type": "filter", "covered": true, "how": "смена фильтра→новый запрос списка" }, { "key": "action:post", "label": "действие: провести", "type": "action", "covered": false, "how": "не найден здесь" }, { "key": "action:unpost", "label": "действие: снять проведение", "type": "action", "covered": false, "how": "не найден здесь" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": false, "how": "сохранение не удалось" } ], "pct": 38, "done": 3 }, { "route": "/purchases/invoices", "page": "InvoicesPage", "file": "pages/InvoicesPage.tsx", "priority": "P3", "title": "Накладные", "listUrl": "/api/purchases/invoices", "elements": [ { "key": "action:unpost", "label": "действие: снять проведение", "type": "action", "covered": true, "how": "элемент присутствует" } ], "pct": 100, "done": 1 }, { "route": "/purchases/supplier-returns", "page": "SupplierReturnsPage", "file": "pages/SupplierReturnsPage.tsx", "priority": "P3", "title": "Возвраты поставщикам", "listUrl": "/api/purchases/supplier-returns", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "sort:number", "label": "сортировка: №", "type": "sort", "covered": true, "how": "клик «№»→sort=number" }, { "key": "sort:date", "label": "сортировка: Дата", "type": "sort", "covered": true, "how": "клик «Дата»→sort=date" }, { "key": "sort:status", "label": "сортировка: Статус", "type": "sort", "covered": true, "how": "клик «Статус»→sort=status" }, { "key": "sort:supplier", "label": "сортировка: Поставщик", "type": "sort", "covered": true, "how": "клик «Поставщик»→sort=supplier" }, { "key": "sort:total", "label": "сортировка: Сумма", "type": "sort", "covered": true, "how": "клик «Сумма»→sort=total" }, { "key": "action:create", "label": "действие: создать", "type": "action", "covered": true, "how": "переход на создание" } ], "pct": 100, "done": 8 }, { "route": "/reports/sales", "page": "SalesReportPage", "file": "pages/SalesReportPage.tsx", "priority": "P3", "title": "Данных для отчёта нет", "listUrl": "/api/reports/sales", "elements": [ { "key": "filter:period", "label": "фильтр: период/дата", "type": "filter", "covered": true, "how": "смена периода→новый запрос" } ], "pct": 100, "done": 1 }, { "route": "/reports/stock", "page": "StockReportPage", "file": "pages/StockReportPage.tsx", "priority": "P3", "title": "Остатки пусты", "listUrl": "/api/reports/stock", "elements": [ { "key": "filter:period", "label": "фильтр: период/дата", "type": "filter", "covered": true, "how": "смена периода→новый запрос" } ], "pct": 100, "done": 1 }, { "route": "/admin/import/moysklad", "page": "MoySkladImportPage", "file": "pages/MoySkladImportPage.tsx", "priority": "P4", "title": "Импорт из МойСклад", "listUrl": "/api/admin/jobs/", "elements": [ { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" } ], "pct": 0, "done": 0 }, { "route": "/audit-log", "page": "OrgAuditLogPage", "file": "pages/OrgAuditLogPage.tsx", "priority": "P4", "title": "Журнал изменений", "listUrl": "/api/organization/employees", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": false, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": false, "how": "список пуст — пагинации нет" }, { "key": "filter:sel1", "label": "фильтр: фильтр 1", "type": "filter", "covered": false, "how": "смена фильтра→новый запрос списка" }, { "key": "filter:sel2", "label": "фильтр: фильтр 2", "type": "filter", "covered": false, "how": "смена фильтра→новый запрос списка" }, { "key": "filter:все", "label": "фильтр: Все", "type": "filter", "covered": false, "how": "смена фильтра→новый запрос списка" }, { "key": "filter:period", "label": "фильтр: период/дата", "type": "filter", "covered": false, "how": "период не изменил выдачу" } ], "pct": 0, "done": 0 }, { "route": "/catalog/price-types", "page": "PriceTypesPage", "file": "pages/PriceTypesPage.tsx", "priority": "P4", "title": "Типы цен", "listUrl": "/api/catalog/price-types", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": false, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": false, "how": "список пуст — пагинации нет" }, { "key": "sort:name", "label": "сортировка: Название", "type": "sort", "covered": false, "how": "нет заголовка «Название»" }, { "key": "sort:isRequired", "label": "сортировка: Обязательно", "type": "sort", "covered": false, "how": "нет заголовка «Обязательно»" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": false, "how": "сохранение не удалось" } ], "pct": 0, "done": 0 }, { "route": "/catalog/product-groups", "page": "ProductGroupsPage", "file": "pages/ProductGroupsPage.tsx", "priority": "P4", "title": "Группы товаров", "listUrl": "/api/catalog/product-groups", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "sort:name", "label": "сортировка: Название", "type": "sort", "covered": true, "how": "клик «Название»→sort=name" }, { "key": "sort:path", "label": "сортировка: Путь", "type": "sort", "covered": true, "how": "клик «Путь»→sort=path" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": true, "how": "создание→POST 2xx" } ], "pct": 83, "done": 5 }, { "route": "/catalog/retail-points", "page": "RetailPointsPage", "file": "pages/RetailPointsPage.tsx", "priority": "P4", "title": "Кассы", "listUrl": "/api/catalog/retail-points", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "sort:name", "label": "сортировка: Название", "type": "sort", "covered": true, "how": "клик «Название»→sort=name" }, { "key": "sort:code", "label": "сортировка: Код", "type": "sort", "covered": true, "how": "клик «Код»→sort=code" }, { "key": "sort:store", "label": "сортировка: Склад", "type": "sort", "covered": true, "how": "клик «Склад»→sort=store" }, { "key": "sort:address", "label": "сортировка: Адрес", "type": "sort", "covered": true, "how": "клик «Адрес»→sort=address" }, { "key": "sort:isActive", "label": "сортировка: Активна", "type": "sort", "covered": true, "how": "клик «Активна»→sort=isActive" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": true, "how": "создание→POST 2xx" } ], "pct": 89, "done": 8 }, { "route": "/catalog/stores", "page": "StoresPage", "file": "pages/StoresPage.tsx", "priority": "P4", "title": "Склады", "listUrl": "/api/catalog/stores", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "sort:name", "label": "сортировка: Название", "type": "sort", "covered": true, "how": "клик «Название»→sort=name" }, { "key": "sort:code", "label": "сортировка: Код", "type": "sort", "covered": true, "how": "клик «Код»→sort=code" }, { "key": "sort:address", "label": "сортировка: Адрес", "type": "sort", "covered": true, "how": "клик «Адрес»→sort=address" }, { "key": "sort:isMain", "label": "сортировка: Основной", "type": "sort", "covered": true, "how": "клик «Основной»→sort=isMain" }, { "key": "sort:isActive", "label": "сортировка: Активен", "type": "sort", "covered": true, "how": "клик «Активен»→sort=isActive" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": true, "how": "создание→POST 2xx" } ], "pct": 89, "done": 8 }, { "route": "/catalog/units", "page": "UnitsOfMeasurePage", "file": "pages/UnitsOfMeasurePage.tsx", "priority": "P4", "title": "Единицы измерения", "listUrl": "/api/catalog/units-of-measure", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "sort:name", "label": "сортировка: Название", "type": "sort", "covered": true, "how": "клик «Название»→sort=name" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" } ], "pct": 75, "done": 3 }, { "route": "/inventory/mobile", "page": "InventoryMobilePage", "file": "pages/InventoryMobilePage.tsx", "priority": "P4", "title": "Инвентаризация с телефона", "listUrl": "/api/catalog/stores", "elements": [ { "key": "action:post", "label": "действие: провести", "type": "action", "covered": false, "how": "не найден здесь" } ], "pct": 0, "done": 0 }, { "route": "/inventory/transfers", "page": "TransfersPage", "file": "pages/TransfersPage.tsx", "priority": "P4", "title": "Перемещения", "listUrl": "/api/inventory/transfers", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": false, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": false, "how": "список пуст — пагинации нет" }, { "key": "sort:number", "label": "сортировка: №", "type": "sort", "covered": false, "how": "нет заголовка «№»" }, { "key": "sort:date", "label": "сортировка: Дата", "type": "sort", "covered": false, "how": "нет заголовка «Дата»" }, { "key": "sort:status", "label": "сортировка: Статус", "type": "sort", "covered": false, "how": "нет заголовка «Статус»" }, { "key": "sort:total", "label": "сортировка: Сумма", "type": "sort", "covered": false, "how": "нет заголовка «Сумма»" }, { "key": "action:create", "label": "действие: создать", "type": "action", "covered": false, "how": "не открылось" } ], "pct": 0, "done": 0 }, { "route": "/loyalty/cards", "page": "LoyaltyCardsPage", "file": "pages/LoyaltyCardsPage.tsx", "priority": "P4", "title": "Карты лояльности", "listUrl": "/api/loyalty/cards", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": false, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": false, "how": "список пуст — пагинации нет" }, { "key": "sort:cardNumber", "label": "сортировка: Номер", "type": "sort", "covered": false, "how": "нет заголовка «Номер»" } ], "pct": 0, "done": 0 }, { "route": "/loyalty/programs", "page": "LoyaltyProgramsPage", "file": "pages/LoyaltyProgramsPage.tsx", "priority": "P4", "title": "Программы лояльности", "listUrl": "/api/loyalty/programs", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": false, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": false, "how": "список пуст — пагинации нет" }, { "key": "sort:name", "label": "сортировка: Название", "type": "sort", "covered": false, "how": "нет заголовка «Название»" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": false, "how": "сохранение не удалось" } ], "pct": 0, "done": 0 }, { "route": "/money/accounts", "page": "MoneyAccountsPage", "file": "pages/money/MoneyAccountsPage.tsx", "priority": "P4", "title": "Счета и кассы", "listUrl": "/api/money/accounts", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": false, "how": "сохранение не удалось" } ], "pct": 50, "done": 2 }, { "route": "/money/expense-items", "page": "ExpenseItemsPage", "file": "pages/money/ExpenseItemsPage.tsx", "priority": "P4", "title": "Статьи расходов", "listUrl": "/api/money/expense-items", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": true, "how": "создание→POST 2xx" } ], "pct": 75, "done": 3 }, { "route": "/promotions", "page": "PromotionsPage", "file": "pages/PromotionsPage.tsx", "priority": "P4", "title": "Акции и промокоды", "listUrl": "/api/promotions", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": false, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": false, "how": "список пуст — пагинации нет" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": false, "how": "сохранение не удалось" } ], "pct": 0, "done": 0 }, { "route": "/sales/demands", "page": "DemandsPage", "file": "pages/DemandsPage.tsx", "priority": "P4", "title": "Оптовые отгрузки", "listUrl": "/api/sales/demands", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": false, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": false, "how": "список пуст — пагинации нет" }, { "key": "sort:number", "label": "сортировка: №", "type": "sort", "covered": false, "how": "нет заголовка «№»" }, { "key": "sort:date", "label": "сортировка: Дата", "type": "sort", "covered": false, "how": "нет заголовка «Дата»" }, { "key": "sort:status", "label": "сортировка: Статус", "type": "sort", "covered": false, "how": "нет заголовка «Статус»" }, { "key": "sort:customer", "label": "сортировка: Контрагент", "type": "sort", "covered": false, "how": "нет заголовка «Контрагент»" }, { "key": "sort:total", "label": "сортировка: Сумма", "type": "sort", "covered": false, "how": "нет заголовка «Сумма»" }, { "key": "action:create", "label": "действие: создать", "type": "action", "covered": false, "how": "не открылось" } ], "pct": 0, "done": 0 }, { "route": "/settings/employee-roles", "page": "EmployeeRolesPage", "file": "pages/EmployeeRolesPage.tsx", "priority": "P4", "title": "Роли сотрудников", "listUrl": "/api/organization/employee-roles", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": false, "how": "сохранение не удалось" } ], "pct": 50, "done": 2 }, { "route": "/settings/employees", "page": "EmployeesPage", "file": "pages/EmployeesPage.tsx", "priority": "P4", "title": "Сотрудники", "listUrl": "/api/organization/employees", "elements": [ { "key": "search", "label": "поиск", "type": "search", "covered": true, "how": "поиск→search=" }, { "key": "pagination", "label": "пагинация", "type": "pagination", "covered": true, "how": "пагинация отрисована" }, { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" }, { "key": "action:save", "label": "действие: сохранить", "type": "action", "covered": false, "how": "сохранение не удалось" } ], "pct": 50, "done": 2 }, { "route": "/settings/organization", "page": "OrganizationSettingsPage", "file": "pages/OrganizationSettingsPage.tsx", "priority": "P4", "title": "Настройки организации", "listUrl": "/api/organization/telegram/status", "elements": [ { "key": "action:delete", "label": "действие: удалить", "type": "action", "covered": false, "how": "не удалось удалить" } ], "pct": 0, "done": 0 } ] }