fix(ui): сохранять поиск и выбранный узел OSPF

This commit is contained in:
Denozordec committed 2026-09-30 20:09:00 +07:00
1 parent 1d522527b4
commit 7a68ae8184
9 files changed
+113 -32

No files matched your search

+30
View File
@@ -36,3 +36,33 @@ for(const fails of [false,true])test("OSPF: history во время записи
await expect(page.getByText("Старая ошибка",{exact:false})).toHaveCount(0)
await expect(page.locator("[data-sonner-toast]").filter({hasText:"API подтвердил оптимизацию OSPF"})).toHaveCount(0)
})
test("OSPF: поиск из URL не выдаёт пустой срез за отсутствие настройки",async({page})=>{
await setup(page);await page.goto("/ospf?server=2&q=ether2&keep=x")
await expect(page.getByPlaceholder("Поиск в текущем разделе OSPF…")).toHaveValue("ether2")
await expect(page.getByText("ether2",{exact:true})).toBeVisible();await expect(page.getByText("ether1",{exact:true})).toHaveCount(0)
await page.getByPlaceholder("Поиск в текущем разделе OSPF…").fill("несуществующий")
await expect(page.getByText("Нет интерфейсов по текущему поиску",{exact:true})).toBeVisible()
await expect(page.getByText("OSPF интерфейсы не настроены ни на одном сервере",{exact:true})).toHaveCount(0)
await page.reload();await expect(page.getByText("Нет интерфейсов по текущему поиску",{exact:true})).toBeVisible()
await page.getByRole("button",{name:"Сбросить поиск",exact:true}).click()
await expect(page).toHaveURL(/server=2/);await expect(page).toHaveURL(/keep=x/);await expect(page.getByText("ether2",{exact:true})).toBeVisible()
})
test("OSPF: недоступный узел из URL исправляется без сброса устройства",async({page})=>{
await setup(page);await page.goto("/ospf?server=2&tab=neighbors&node=999&keep=x")
const alert=page.getByRole("alert").filter({hasText:"Узел OSPF недоступен"});await expect(alert).toBeVisible()
await alert.getByRole("button",{name:"Закрыть узел OSPF"}).click()
await expect(alert).toHaveCount(0);await expect(page).toHaveURL(/server=2/);await expect(page).toHaveURL(/keep=x/)
})
test("OSPF: выбранный узел и поиск сохраняются после reload/back",async({page})=>{
await setup(page)
await page.route("**/api/ospf/catalog",r=>r.fulfill({json:{...catalog,neighbors:[1,2].map(id=>({...host(id),id:"n",address:"198.51.100."+id,routerId:"198.51.100."+id,instance:"default",area:"backbone",areaId:"0.0.0.0",interface:"ether"+id,state:"Full",uptime:"1h",priority:1,stateChanges:0}))}}))
await page.goto("/ospf?tab=neighbors&q=ether1&keep=x")
const rows=page.locator("tr[data-row-id]");await expect(rows).toHaveCount(1)
await rows.click();await expect(page).toHaveURL(/node=1/)
const details=page.getByRole("region",{name:"Детали узла OSPF"});await expect(details).toBeVisible()
await page.reload();await expect(details).toBeVisible();await expect(rows).toHaveCount(1)
await page.getByRole("button",{name:"Закрыть",exact:true}).click();await expect(details).toHaveCount(0)
await page.goBack();await expect(details).toBeVisible();await expect(page).toHaveURL(/keep=x/)
})