fix(ui): восстанавливать фильтры WireGuard из ссылки
This commit is contained in:
1 parent
c6702efcc4
commit
e51964b4d2
8 files changed
+103
-13
No files matched your search
@@ -527,3 +527,29 @@ for (const oldFails of [false, true]) {
|
||||
await expect(sheet.getByRole("button", { name: "Откатить", exact: true })).toBeVisible()
|
||||
})
|
||||
}
|
||||
|
||||
test("WireGuard URL filters: search/tab/status reload and history preserve selected device", async ({ page }) => {
|
||||
const control=await setup(page,"/wireguard?server=2&interface=*%2F2&keep=1&status=down&q=wg-same#context")
|
||||
const rows=page.locator("tr[data-row-id]")
|
||||
await expect(rows).toHaveCount(1);await expect(page.getByPlaceholder("Поиск по имени, серверу, IP…")).toHaveValue("wg-same")
|
||||
await page.getByRole("tab",{name:/Пиры/}).click()
|
||||
await expect(page).toHaveURL(url=>url.searchParams.get("tab")==="peers"&&url.searchParams.get("status")==="down"&&url.hash==="#context")
|
||||
const search=page.getByPlaceholder("Поиск по ключу, IP, endpoint…");await search.fill("10.0.2.1")
|
||||
await expect(page).toHaveURL(url=>url.searchParams.get("q")==="10.0.2.1"&&url.searchParams.get("server")==="2"&&url.searchParams.get("interface")==="*/2")
|
||||
await page.reload();await expect(search).toHaveValue("10.0.2.1");await expect(rows).toHaveCount(1)
|
||||
await page.getByRole("tab",{name:/Интерфейсы/}).click();await expect(rows).toHaveCount(1)
|
||||
await page.goBack();await expect(page.getByRole("tab",{name:/Пиры/})).toHaveAttribute("aria-selected","true")
|
||||
await page.goForward();await page.getByRole("button",{name:/^UP/}).click();await expect(rows).toHaveCount(0)
|
||||
await expect(page).toHaveURL(url=>url.searchParams.get("status")==="up"&&url.searchParams.get("keep")==="1")
|
||||
await page.reload();await expect(rows).toHaveCount(0);expect(control.posts).toEqual([])
|
||||
})
|
||||
for(const invalid of ["tab=bad","status=bad","q=a&q=b","tab=peers&tab=cli"])test("WireGuard URL rejects invalid filters without widening/"+invalid,async({page})=>{
|
||||
const control=await setup(page,"/wireguard?server=2&interface=*%2F2&keep=1&"+invalid)
|
||||
const warning=page.getByRole("alert",{name:"Фильтры WireGuard",exact:true})
|
||||
await expect(warning).toBeVisible();await expect(page.locator("tr[data-row-id]")).toHaveCount(0)
|
||||
await expect(page.getByRole("button",{name:"Новый интерфейс",exact:true}).first()).toBeDisabled()
|
||||
await warning.getByRole("button",{name:"Сбросить фильтры",exact:true}).click()
|
||||
await expect(warning).toHaveCount(0);await expect(page.locator("tr[data-row-id]")).toHaveCount(1)
|
||||
await expect(page).toHaveURL(url=>url.searchParams.get("server")==="2"&&url.searchParams.get("interface")==="*/2"&&url.searchParams.get("keep")==="1")
|
||||
expect(control.posts).toEqual([])
|
||||
})
|
||||
Reference in new issue
Block a user