Files
MikrotikManager/tests/e2e/ospf-identity.spec.ts
T

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/)
})