fix(api): сохранять достоверные параметры рекурсивных маршрутов
This commit is contained in:
1 parent
50fad3ac80
commit
54ef752a5b
17 files changed
+198
-45
No files matched your search
@@ -0,0 +1,22 @@
|
||||
import {test,expect} from "@playwright/test"
|
||||
for(const status of ["active","inactive","unknown"] as const)test("Маршруты: наблюдаемые нули, disabled и использование шлюза "+status,async({page})=>{
|
||||
const item={id:"r",dstAddress:"10.0.0.0/24",gateway:"192.0.2.1%bridge1",distance:0,scope:0,targetScope:0,routingTable:"main",checkGateway:"none",comment:"Тест",disabled:true,country:""}
|
||||
let submitted:unknown
|
||||
await page.route("**/health",r=>r.fulfill({json:{ok:true}}))
|
||||
await page.route("**/api/**",r=>{
|
||||
const p=new URL(r.request().url()).pathname
|
||||
if(p==="/api/recursive-routes"&&r.request().method()==="PUT"){const routes=r.request().postDataJSON().routes;submitted=routes;return r.fulfill({json:{ok:true,serverId:1,routes,pushedRoutes:routes.length}})}
|
||||
return r.fulfill({json:p==="/api/auth/config"?{required:false}:p==="/api/servers"?[{id:1,name:"Роутер 1",host:"192.0.2.1",country:"RU",enabled:true,status:null}]:p==="/api/recursive-routes/catalog"?{serverId:1,routes:[item],live:true,stale:false}:p==="/api/recursive-routes/gateways/catalog"?{serverId:1,gateways:[{id:"gateway",ip:"192.0.2.1",name:"bridge1",status}]}:{}})
|
||||
})
|
||||
await page.goto("/recursive-routes")
|
||||
await page.locator("tr[data-row-id]").click()
|
||||
await expect(page.getByText("distance: 0",{exact:true})).toBeVisible();await expect(page.getByText("scope: 0",{exact:true})).toBeVisible();await expect(page.getByText("Отключён",{exact:true})).toBeVisible()
|
||||
await page.getByRole("button",{name:"Редактировать маршрут 10.0.0.0/24 · main",exact:true}).click()
|
||||
const sheet=page.getByRole("dialog")
|
||||
await expect(sheet.getByRole("spinbutton").nth(0)).toHaveValue("0")
|
||||
await expect(sheet.getByRole("spinbutton").nth(1)).toHaveValue("0")
|
||||
await expect(sheet.getByRole("spinbutton").nth(2)).toHaveValue("0")
|
||||
await expect(sheet.getByRole("button").filter({hasText:status==="active"?"Активный маршрут":status==="inactive"?"Неактивный маршрут":"Статус неизвестен"})).toHaveCount(1)
|
||||
await sheet.getByRole("button",{name:"Сохранить",exact:true}).click();await expect(sheet).toHaveCount(0)
|
||||
expect(submitted).toEqual([expect.objectContaining({distance:0,scope:0,targetScope:0,disabled:true,country:"",checkGateway:"none"})])
|
||||
})
|
||||
Reference in new issue
Block a user