fix(ui): согласовать права диагностики с API

This commit is contained in:
Denozordec committed 2026-10-01 04:14:52 +07:00
1 parent cba3db1508
commit b856215c03
6 files changed
+50 -11

No files matched your search

+11
View File
@@ -51,3 +51,14 @@ test("Диагностика: пустой каталог отличается
test("Диагностика: неизвестный статус не становится offline",async({page})=>{
await page.route("**/api/servers",r=>r.fulfill({json:[{...devices[0],status:null}]}));await page.goto("/probes");await expect(run(page)).toBeEnabled();await expect(page.getByRole("option",{name:/Первый/})).not.toHaveAccessibleName(/Не в сети|offline/i)
})
for(const permission of ["mm:servers:read","mm:servers:write"])test("Диагностика: права запуска "+permission,async({page})=>{
await page.addInitScript(p=>localStorage.setItem("mmapp_token","header."+btoa(JSON.stringify({sub:"test",apps:["mm"],permissions:[p],exp:Math.floor(Date.now()/1000)+3600}))+".signature"),permission)
await page.route("**/api/auth/config",r=>r.fulfill({json:{required:true}}));let posts=0,greReads=0
await page.route("**/api/filters/gre-tunnels?*",r=>{greReads++;return r.fulfill({json:{tunnels:[]}})})
await page.route("**/api/servers/1/probes/run",r=>{posts++;return r.fulfill({json:{output:"РАЗРЕШЕНО"}})})
await page.goto("/probes")
if(permission==="mm:servers:read"){await expect(page.getByRole("status").filter({hasText:"Для запуска диагностики требуется mm:servers:write"})).toBeVisible();await expect(run(page)).toBeDisabled();await page.getByRole("textbox",{name:"Цель диагностики"}).press("Enter");expect(posts).toBe(0)}
else{await expect(run(page)).toBeEnabled();await run(page).click();await expect(page.getByText("РАЗРЕШЕНО",{exact:true})).toBeVisible();expect(posts).toBe(1)}
expect(greReads).toBe(0);await page.getByRole("button",{name:/BW-тест/}).click();await expect(page.getByRole("status").filter({hasText:"Для выбора GRE требуется mm:filters:read"})).toBeVisible();await expect(run(page)).toBeDisabled()
})