fix(ui): сохранять явный выбор туннеля диагностики
This commit is contained in:
1 parent
d28d7a2cdb
commit
3c41de136e
11 files changed
+41
-9
No files matched your search
@@ -112,3 +112,12 @@ test("Диагностика: URL выбор, назад и reload сохран
|
||||
await page.goto("/probes?server=2&keep=1#result");await expect(page.getByRole("option",{name:/Второй/})).toHaveAttribute("aria-selected","true")
|
||||
await page.getByRole("option",{name:/Первый/}).click();await expect(page).toHaveURL(/keep=1&server=1#result$/);await page.goBack();await expect(page.getByRole("option",{name:/Второй/})).toHaveAttribute("aria-selected","true");await page.reload();await expect(page.getByRole("option",{name:/Второй/})).toHaveAttribute("aria-selected","true")
|
||||
})
|
||||
|
||||
test("Диагностика: исчезнувший выбранный GRE не подменяется первым",async({page})=>{
|
||||
let tunnels=[{...tunnel,id:"gre-a",name:"Первый GRE"},{...tunnel,id:"gre-b",name:"Выбранный GRE",remoteAddress:"192.0.2.3"}]
|
||||
await page.route("**/api/filters/gre-tunnels?*",r=>r.fulfill({json:{tunnels}}))
|
||||
await page.goto("/probes?server=1");await page.getByRole("button",{name:/BW-тест/}).click();const choice=page.getByRole("combobox",{name:"GRE-туннель для BW-теста"});await expect(run(page)).toBeEnabled();await choice.selectOption("gre-b")
|
||||
tunnels=tunnels.slice(0,1);await page.getByRole("button",{name:"Обновить устройства диагностики",exact:true}).click()
|
||||
await expect(choice.getByRole("option",{name:"Выбранный GRE"})).toHaveCount(0);await expect(choice).toHaveValue("");await expect(run(page)).toBeDisabled()
|
||||
await choice.selectOption("gre-a");await expect(run(page)).toBeEnabled()
|
||||
})
|
||||
@@ -18,3 +18,13 @@ test("Диагностика: недоступный clipboard сохраняе
|
||||
await page.addInitScript(()=>Object.defineProperty(navigator,"clipboard",{value:{writeText:()=>Promise.reject(new Error("permission denied"))},configurable:true}))
|
||||
await page.goto("/probes?server=1");await page.getByRole("button",{name:"Скопировать параметры диагностики"}).click();await expect(page.getByText(/Не удалось скопировать/)).toBeVisible();await expect(page.getByRole("textbox",{name:"Цель диагностики"})).toHaveValue("8.8.8.8")
|
||||
})
|
||||
|
||||
test("Диагностика: клавиатура, подтверждённый clipboard и место DNS",async({page})=>{
|
||||
await page.route("**/health",r=>r.fulfill({json:{ok:true}}));await page.route("**/api/**",r=>r.fulfill({json:new URL(r.request().url()).pathname==="/api/servers"?[{id:1,name:"Устройство",host:"192.0.2.1",enabled:true,status:null,type:"exit-node"}]:new URL(r.request().url()).pathname==="/api/auth/config"?{required:false}:{tunnels:[]}}))
|
||||
await page.addInitScript(()=>Object.defineProperty(navigator,"clipboard",{value:{writeText:async(text:string)=>{sessionStorage.setItem("test-clipboard",text)}},configurable:true}))
|
||||
await page.route("**/api/servers/1/probes/run",r=>r.fulfill({json:{output:"example.test. IN CNAME target.test."}}))
|
||||
await page.goto("/probes?server=1");const dns=page.getByRole("button",{name:"DNS",exact:true});await dns.focus();await page.keyboard.press("Enter");const cname=page.getByRole("button",{name:"CNAME",exact:true});await cname.focus();await page.keyboard.press("Space");await expect(cname).toHaveAttribute("aria-pressed","true")
|
||||
const target=page.getByRole("textbox",{name:"Домен"});await target.fill("example.test");await target.press("Enter");const region=page.getByRole("region",{name:/^Вывод DNS/});await expect(region).toContainText("example.test. IN CNAME target.test.");await expect(target).toBeFocused();await expect(page.getByText("DNS приложения",{exact:true})).toBeVisible()
|
||||
const copy=page.getByRole("button",{name:/^Скопировать показанный вывод/});await copy.focus();await page.keyboard.press("Enter");await expect(page.getByText("Скопировано.",{exact:true})).toBeVisible();expect(await page.evaluate(()=>sessionStorage.getItem("test-clipboard"))).toBe("example.test. IN CNAME target.test.")
|
||||
const remove=page.getByRole("button",{name:/^Удалить результат/});await remove.focus();await page.keyboard.press("Enter");await expect(region).toHaveCount(0);await expect(page.getByRole("button",{name:"Запустить",exact:true})).toBeFocused()
|
||||
})
|
||||
Reference in new issue
Block a user