fix(test): учесть общий опрос в проверке прав каталогов

This commit is contained in:
Denozordec committed 2026-10-03 17:51:49 +07:00
1 parent 526f305aa6
commit a5c8e614bd
2 files changed
+3 -3

No files matched your search

+1 -1
View File
@@ -40,7 +40,7 @@
- Primary strict reader больше не ждёт BGP/server labels/GRE. Каждый каталог имеет собственные abort/revision/lifetime, loading/error/known/time, retry и последний успешный snapshot; header refresh запускает их независимо. Unknown не отображается как пустой каталог.
- Неполный GRE с failures не заменяет последний полный список. Первоначальный partial остаётся unknown; missing status не становится down/degraded. Для отсутствующей подписи сервера используется ID с объяснением зависимости. BGP API не сообщает completeness — это прямо указано.
- 7 основных browser сценариев (3 primary, 3 catalogs и права BGP/GRE), 2 source ABA (late success/error), typecheck без incremental, lint и ReUI Frame audit пройдены. Первые test assertions на абсолютное количество GET скорректированы: initial source/StrictMode допускают отменённые GET; manual refresh проверяется относительно baseline. Общий dashboard reader отдельно обращается к /servers — его права не приняты этим блоком.
- 7 основных browser сценариев (3 primary, 3 catalogs и права BGP/GRE), 2 source ABA (late success/error), typecheck без incremental, lint и ReUI Frame audit пройдены. Первые test assertions на абсолютное количество GET скорректированы: initial source/StrictMode допускают отменённые GET; manual refresh проверяется относительно baseline. Первоначальная отметка права теста в 526f305 была преждевременной: общий dashboard reader обращается к /servers и /filters/gre-tunnels. Скорректированный browser test подтверждает отсутствие BGP GET и новых сетевых GET при retry запрещённых каталогов Alerts; он прошёл отдельно. Права общего dashboard reader не приняты этим блоком и требуют исправления перед этапом 12.
- Переиспользован установленный OpsPanel/Frame, добавлен min-h-0 scroll chain и responsive padding. Контракт компонента не менялся. Реальные RouterOS/PG/Telegram не вызывались; весь Alerts ещё не принят.
- Следующий точный шаг 11Б.4.3.2: Telegram dirty draft/selective save/test/rights/unknown review/source; затем правила, GET/revision/outbox audit и оставшиеся 11Б/12.
+2 -2
View File
@@ -23,8 +23,8 @@ test("Alerts catalogs: initial partial GRE remains unknown",async({page})=>{awai
test("Alerts catalogs: alerts read permission does not grant network catalog access",async({page})=>{
const token="header."+Buffer.from(JSON.stringify({sub:"fixture",apps:["mm"],permissions:["mm:alerts:read"],exp:Math.floor(Date.now()/1000)+3600})).toString("base64url")+".fixture"
await page.addInitScript(value=>localStorage.setItem("mmapp_token",value),token)
let calls=0;await setup(page,(r,path)=>{if(["/api/bgp/sessions","/api/filters/gre-tunnels"].includes(path))calls++;return r.fulfill({json:[]})},true)
const calls:string[]=[];await setup(page,(r,path)=>{if(["/api/bgp/sessions","/api/filters/gre-tunnels"].includes(path))calls.push(path);return r.fulfill({json:[]})},true)
await expect(page.getByText("Всего: 0",{exact:true})).toBeVisible()
for(const label of ["BGP","Серверы","GRE"])await expect(page.getByRole("region",{name:"Каталог "+label,exact:true}).getByRole("alert")).toHaveText("Нет доступа к каталогу")
expect(calls).toBe(0)
const baseline=[...calls];for(const label of ["BGP","Серверы","GRE"])await page.getByRole("button",{name:"Обновить каталог "+label,exact:true}).click();expect(calls).toEqual(baseline);expect(calls).not.toContain("/api/bgp/sessions")
})