food-market/tests/e2e/reports/uat-covered.json
nns 2b751dc129
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
test(uat): измеримое покрытие — прогон + HTML с цифрами (P1–P3 80%, P4 37%)
Доработаны хендлеры браузерного прогона (пагинация со сбросом поиска, обобщённое
создание/сохранение/удаление, период-фильтры, доп. сид: чек/приёмка/оприходование/
списание/инвентаризация/возврат). Экстрактор ловит строковый фолбэк заголовка колонки.
docs/uat-coverage.html — цифры по экрану/приоритету/общим. Цели (P1–P3 ≥95%, P4 ≥70%)
пока НЕ достигнуты (переход на ALL MARKET в приоритете) — остаток задокументирован в
docs/uat-coverage-progress.md, продолжим после перехода.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 13:09:46 +05:00

857 lines
23 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"generatedAt": "2026-10-09T08:05:20.852Z",
"covered": {
"/catalog/products": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"export": {
"covered": true,
"how": "экспорт→/export&format="
},
"sort:name": {
"covered": true,
"how": "клик «Название»→sort=name"
},
"sort:packaging": {
"covered": true,
"how": "клик «Фасовка»→sort=packaging"
},
"sort:cost": {
"covered": true,
"how": "клик «Себестоимость»→sort=cost"
},
"sort:systemPrice": {
"covered": false,
"how": "нет заголовка «systemPrice»"
},
"sort:vat": {
"covered": false,
"how": "нет заголовка «НДС»"
},
"filter:все": {
"covered": false,
"how": "смена фильтра→новый запрос списка"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:create": {
"covered": true,
"how": "переход на создание"
}
},
"/inventory/stock": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"export": {
"covered": true,
"how": "экспорт→/export&format="
},
"sort:name": {
"covered": true,
"how": "клик «Товар»→sort=name"
},
"sort:store": {
"covered": false,
"how": "клик «Склад»→sort=store"
},
"sort:unit": {
"covered": true,
"how": "клик «Ед.»→sort=unit"
},
"sort:quantity": {
"covered": true,
"how": "клик «Остаток»→sort=quantity"
},
"sort:reserved": {
"covered": true,
"how": "клик «Резерв»→sort=reserved"
},
"sort:available": {
"covered": true,
"how": "клик «Доступно»→sort=available"
},
"filter:все-склады": {
"covered": true,
"how": "смена фильтра→новый запрос списка"
},
"toggle:показать-нулевые": {
"covered": true,
"how": "тумблер→новый запрос списка"
},
"toggle:только-минусы": {
"covered": true,
"how": "тумблер→новый запрос списка"
}
},
"/sales/retail": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"export": {
"covered": true,
"how": "экспорт→/export&format="
},
"sort:number": {
"covered": true,
"how": "клик «№»→sort=number"
},
"sort:date": {
"covered": true,
"how": "клик «Дата/время»→sort=date"
},
"sort:status": {
"covered": true,
"how": "клик «Статус»→sort=status"
},
"sort:store": {
"covered": true,
"how": "клик «Магазин»→sort=store"
},
"sort:total": {
"covered": true,
"how": "клик «Сумма»→sort=total"
},
"action:create": {
"covered": true,
"how": "переход на создание"
}
},
"/money/shifts": {
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"action:print": {
"covered": true,
"how": "элемент присутствует"
},
"action:save": {
"covered": false,
"how": "сохранение не удалось"
}
},
"/purchases/supplies": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"export": {
"covered": true,
"how": "экспорт→/export&format="
},
"sort:number": {
"covered": true,
"how": "клик «№»→sort=number"
},
"sort:date": {
"covered": true,
"how": "клик «Дата»→sort=date"
},
"sort:status": {
"covered": true,
"how": "клик «Статус»→sort=status"
},
"sort:supplier": {
"covered": true,
"how": "клик «Поставщик»→sort=supplier"
},
"sort:store": {
"covered": true,
"how": "клик «Склад»→sort=store"
},
"sort:total": {
"covered": true,
"how": "клик «Сумма»→sort=total"
},
"filter:оплата-все": {
"covered": true,
"how": "смена фильтра→новый запрос списка"
},
"action:create": {
"covered": true,
"how": "открылась форма"
}
},
"/catalog/counterparties": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"export": {
"covered": true,
"how": "экспорт→/export&format="
},
"sort:name": {
"covered": true,
"how": "клик «Название»→sort=name"
},
"sort:type": {
"covered": true,
"how": "клик «Тип»→sort=type"
},
"sort:phone": {
"covered": true,
"how": "клик «Телефон»→sort=phone"
},
"sort:country": {
"covered": true,
"how": "клик «Страна»→sort=country"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": true,
"how": "создание→POST 2xx"
}
},
"/catalog/data-quality": {
"action:delete": {
"covered": false,
"how": "не удалось удалить"
}
},
"/inventory/enters": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"sort:number": {
"covered": true,
"how": "клик «№»→sort=number"
},
"sort:date": {
"covered": true,
"how": "клик «Дата»→sort=date"
},
"sort:status": {
"covered": true,
"how": "клик «Статус»→sort=status"
},
"sort:store": {
"covered": true,
"how": "клик «Склад»→sort=store"
},
"sort:total": {
"covered": true,
"how": "клик «Сумма»→sort=total"
},
"action:create": {
"covered": false,
"how": "не открылось"
}
},
"/inventory/inventories": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"sort:number": {
"covered": true,
"how": "клик «№»→sort=number"
},
"sort:date": {
"covered": true,
"how": "клик «Дата»→sort=date"
},
"sort:status": {
"covered": true,
"how": "клик «Статус»→sort=status"
},
"action:create": {
"covered": true,
"how": "открылась форма"
}
},
"/inventory/losses": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"sort:number": {
"covered": true,
"how": "клик «№»→sort=number"
},
"sort:date": {
"covered": true,
"how": "клик «Дата»→sort=date"
},
"sort:status": {
"covered": true,
"how": "клик «Статус»→sort=status"
},
"sort:reason": {
"covered": true,
"how": "клик «Причина»→sort=reason"
},
"sort:store": {
"covered": true,
"how": "клик «Склад»→sort=store"
},
"sort:total": {
"covered": true,
"how": "клик «Сумма»→sort=total"
},
"action:create": {
"covered": false,
"how": "не открылось"
}
},
"/inventory/movements": {
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"sort:occurredAt": {
"covered": true,
"how": "клик «Дата»→sort=occurredAt"
},
"sort:type": {
"covered": true,
"how": "клик «Операция»→sort=type"
},
"sort:product": {
"covered": true,
"how": "клик «Товар»→sort=product"
},
"sort:store": {
"covered": false,
"how": "клик «Склад»→sort=store"
},
"sort:quantity": {
"covered": true,
"how": "клик «Количество»→sort=quantity"
},
"sort:documentType": {
"covered": true,
"how": "клик «Документ»→sort=documentType"
},
"filter:все-склады": {
"covered": true,
"how": "смена фильтра→новый запрос списка"
}
},
"/money/report": {
"filter:period": {
"covered": false,
"how": "период не изменил выдачу"
}
},
"/money/supplier-debts": {
"action:post": {
"covered": false,
"how": "не найден здесь"
},
"action:save": {
"covered": false,
"how": "сохранение не удалось"
}
},
"/money/transactions": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"filter:все-статусы": {
"covered": true,
"how": "смена фильтра→новый запрос списка"
},
"filter:все-типы": {
"covered": true,
"how": "смена фильтра→новый запрос списка"
},
"action:post": {
"covered": false,
"how": "не найден здесь"
},
"action:unpost": {
"covered": false,
"how": "не найден здесь"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": false,
"how": "сохранение не удалось"
}
},
"/purchases/invoices": {
"action:unpost": {
"covered": true,
"how": "элемент присутствует"
}
},
"/purchases/supplier-returns": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"sort:number": {
"covered": true,
"how": "клик «№»→sort=number"
},
"sort:date": {
"covered": true,
"how": "клик «Дата»→sort=date"
},
"sort:status": {
"covered": true,
"how": "клик «Статус»→sort=status"
},
"sort:supplier": {
"covered": true,
"how": "клик «Поставщик»→sort=supplier"
},
"sort:total": {
"covered": true,
"how": "клик «Сумма»→sort=total"
},
"action:create": {
"covered": true,
"how": "переход на создание"
}
},
"/reports/sales": {
"filter:period": {
"covered": false,
"how": "период не изменил выдачу"
}
},
"/reports/stock": {
"filter:period": {
"covered": false,
"how": "период не изменил выдачу"
}
},
"/admin/import/moysklad": {
"action:delete": {
"covered": false,
"how": "не удалось удалить"
}
},
"/audit-log": {
"search": {
"covered": false,
"how": "поиск→search="
},
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"filter:sel1": {
"covered": false,
"how": "смена фильтра→новый запрос списка"
},
"filter:sel2": {
"covered": false,
"how": "смена фильтра→новый запрос списка"
},
"filter:все": {
"covered": false,
"how": "смена фильтра→новый запрос списка"
},
"filter:period": {
"covered": false,
"how": "период не изменил выдачу"
}
},
"/catalog/price-types": {
"search": {
"covered": false,
"how": "поиск→search="
},
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"sort:name": {
"covered": false,
"how": "нет заголовка «Название»"
},
"sort:isRequired": {
"covered": false,
"how": "нет заголовка «Обязательно»"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": false,
"how": "сохранение не удалось"
}
},
"/catalog/product-groups": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"sort:name": {
"covered": true,
"how": "клик «Название»→sort=name"
},
"sort:path": {
"covered": true,
"how": "клик «Путь»→sort=path"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": true,
"how": "создание→POST 2xx"
}
},
"/catalog/retail-points": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"sort:name": {
"covered": true,
"how": "клик «Название»→sort=name"
},
"sort:code": {
"covered": true,
"how": "клик «Код»→sort=code"
},
"sort:store": {
"covered": true,
"how": "клик «Склад»→sort=store"
},
"sort:address": {
"covered": true,
"how": "клик «Адрес»→sort=address"
},
"sort:isActive": {
"covered": true,
"how": "клик «Активна»→sort=isActive"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": true,
"how": "создание→POST 2xx"
}
},
"/catalog/stores": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"sort:name": {
"covered": true,
"how": "клик «Название»→sort=name"
},
"sort:code": {
"covered": true,
"how": "клик «Код»→sort=code"
},
"sort:address": {
"covered": true,
"how": "клик «Адрес»→sort=address"
},
"sort:isMain": {
"covered": true,
"how": "клик «Основной»→sort=isMain"
},
"sort:isActive": {
"covered": true,
"how": "клик «Активен»→sort=isActive"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": true,
"how": "создание→POST 2xx"
}
},
"/catalog/units": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"sort:name": {
"covered": true,
"how": "клик «Название»→sort=name"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
}
},
"/inventory/mobile": {
"action:post": {
"covered": false,
"how": "не найден здесь"
}
},
"/inventory/transfers": {
"search": {
"covered": false,
"how": "поиск→search="
},
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"sort:number": {
"covered": false,
"how": "нет заголовка «№»"
},
"sort:date": {
"covered": false,
"how": "нет заголовка «Дата»"
},
"sort:status": {
"covered": false,
"how": "нет заголовка «Статус»"
},
"sort:total": {
"covered": false,
"how": "нет заголовка «Сумма»"
},
"action:create": {
"covered": false,
"how": "не открылось"
}
},
"/loyalty/cards": {
"search": {
"covered": false,
"how": "поиск→search="
},
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"sort:cardNumber": {
"covered": false,
"how": "нет заголовка «Номер»"
}
},
"/loyalty/programs": {
"search": {
"covered": false,
"how": "поиск→search="
},
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"sort:name": {
"covered": false,
"how": "нет заголовка «Название»"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": false,
"how": "сохранение не удалось"
}
},
"/money/accounts": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": false,
"how": "сохранение не удалось"
}
},
"/money/expense-items": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": true,
"how": "создание→POST 2xx"
}
},
"/promotions": {
"search": {
"covered": false,
"how": "поиск→search="
},
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": false,
"how": "сохранение не удалось"
}
},
"/sales/demands": {
"search": {
"covered": false,
"how": "поиск→search="
},
"pagination": {
"covered": false,
"how": "список пуст — пагинации нет"
},
"sort:number": {
"covered": false,
"how": "нет заголовка «№»"
},
"sort:date": {
"covered": false,
"how": "нет заголовка «Дата»"
},
"sort:status": {
"covered": false,
"how": "нет заголовка «Статус»"
},
"sort:customer": {
"covered": false,
"how": "нет заголовка «Контрагент»"
},
"sort:total": {
"covered": false,
"how": "нет заголовка «Сумма»"
},
"action:create": {
"covered": false,
"how": "не открылось"
}
},
"/settings/employee-roles": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": false,
"how": "сохранение не удалось"
}
},
"/settings/employees": {
"search": {
"covered": true,
"how": "поиск→search="
},
"pagination": {
"covered": true,
"how": "пагинация отрисована"
},
"action:delete": {
"covered": false,
"how": "не удалось удалить"
},
"action:save": {
"covered": false,
"how": "сохранение не удалось"
}
},
"/settings/organization": {
"action:delete": {
"covered": false,
"how": "не удалось удалить"
}
}
}
}