fix(ui): согласовать права диагностики с API
This commit is contained in:
1 parent
cba3db1508
commit
b856215c03
6 files changed
+50
-11
No files matched your search
@@ -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()
|
||||
})
|
||||
Reference in new issue
Block a user