17 lines
1.6 KiB
TypeScript
17 lines
1.6 KiB
TypeScript
import { test,expect } from "@playwright/test"
|
|
test("OSPF: ссылка main не связывает устройства, фактический Router ID связывает",async({page})=>{
|
|
let known=false
|
|
const host=(id:number)=>({serverId:id,serverName:"Роутер "+id,serverSite:"",serverCountry:"RU"})
|
|
await page.route("**/health",r=>r.fulfill({json:{ok:true}}))
|
|
await page.route("**/api/**",r=>{const path=new URL(r.request().url()).pathname;return r.fulfill({json:path==="/api/ospf/catalog"?{neighbors:[1,2].map(id=>({...host(id),id:"n",address:"192.0.2."+(3-id),routerId:"192.0.2."+(3-id),instance:"default",area:"backbone",areaId:"0.0.0.0",interface:"ether1",state:"Full",uptime:"1h",priority:1,stateChanges:0})),interfaces:[],instances:[1,2].map(id=>({...host(id),id:"i",name:"default",routerId:id===2&&!known?"main":"192.0.2."+id,version:2,disabled:false,inactive:false,redistribute:""})),bfdSessions:[],routes:[],failures:[]}:path==="/api/servers"?[1,2].map(id=>({id,name:"Роутер "+id,host:"192.0.2."+id,enabled:true,status:null,country:"RU"})):path==="/api/auth/config"?{required:false}:{}})})
|
|
await page.goto("/ospf?tab=neighbors")
|
|
const nodes=page.locator("[data-ospf-node]")
|
|
await expect(nodes).toHaveCount(3)
|
|
await expect(page.locator('[data-ospf-node="remote-192.0.2.2"]')).toBeVisible()
|
|
known=true;await page.getByRole("button",{name:"Обновить",exact:true}).click()
|
|
await expect(nodes).toHaveCount(2)
|
|
await page.locator('[data-ospf-node="2"] > circle[r="34"]').click()
|
|
const details=page.getByRole("region",{name:"Детали узла OSPF"});await expect(details).toContainText("192.0.2.2")
|
|
await expect(page).toHaveURL(/node=2/)
|
|
})
|