fix(netflow): завершить локальную приёмку и объединить сценарий сброса
This commit is contained in:
1 parent
d9e09281e8
commit
2215007c91
13 files changed
+31
-41
No files matched your search
@@ -57,3 +57,9 @@ test("NetFlow: сетевой ввод проверяется до HTTP и port
|
||||
await collector.fill("10.255.254.1");const endpoint=page.getByRole("textbox",{name:"Публичный endpoint хоста MM",exact:true});await endpoint.fill("https://host.test");await save(page).click();await expect(page.getByText("Endpoint: укажите IP или DNS-имя без порта и протокола",{exact:true})).toBeVisible();expect(writes).toEqual([])
|
||||
await endpoint.fill("Collector.EXAMPLE.test.");await field(page).fill("4740");await save(page).click();await expect(page.getByText("Сохранение настроек NetFlow подтверждено",{exact:true})).toBeVisible();expect(writes).toEqual([{collectorIp:"10.255.254.1",flowListenPort:4740,publicEndpoint:"Collector.EXAMPLE.test."}]);await expect(page.getByText(/Firewall: разрешите UDP listen WireGuard. UDP 4740/)).toBeVisible();await expect(page.getByText(/ss -ulnp.*4740/)).toBeVisible()
|
||||
})
|
||||
|
||||
test("NetFlow: порог включается с явной долей, без default 5",async({page})=>{await setup(page);const writes:object[]=[];await page.route("**/api/traffic/flow/settings",r=>{if(r.request().method()!=="PUT")return r.fallback();const patch=r.request().postDataJSON();writes.push(patch);return r.fulfill({json:{ok:true,settings:{...settings,...patch}}})});await open(page);await page.getByRole("switch",{name:"Порог доли на карте",exact:true}).click();const share=page.getByRole("textbox",{name:"Минимум % окна",exact:true});await expect(share).toHaveValue("0");await save(page).click();await expect(page.getByText("Порог карты: укажите долю больше 0 и не более 100%",{exact:true})).toBeVisible();expect(writes).toEqual([]);await share.fill("0.25");await save(page).click();await expect(page.getByText("Сохранение настроек NetFlow подтверждено",{exact:true})).toBeVisible();expect(writes).toEqual([{mapServiceMinSharePct:0.25}]);await expect(share).toHaveValue("0.25")})
|
||||
|
||||
test("NetFlow: поздний GET не отменяет подтверждённый PUT",async({page})=>{await setup(page);let pending=false,started=false,completed=false,release!:()=>void;const gate=new Promise<void>(resolve=>release=resolve);await page.route("**/api/traffic/flow/settings",async r=>{if(r.request().method()==="PUT")return r.fulfill({json:{ok:true,settings:{...settings,...r.request().postDataJSON()}}});if(!pending)return r.fallback();started=true;await gate;try{await r.fulfill({json:settings})}catch{}finally{completed=true}});try{await open(page);pending=true;await refresh(page).click();await expect.poll(()=>started).toBe(true);await field(page).fill("4740");await save(page).click();await expect(page.getByText("Сохранение настроек NetFlow подтверждено",{exact:true})).toBeVisible();release();await expect.poll(()=>completed).toBe(true);await expect(field(page)).toHaveValue("4740");await expect(save(page)).toBeDisabled()}finally{release()}})
|
||||
|
||||
test("NetFlow: Settings ведут к единому подтверждению сброса без POST перехода",async({page})=>{await setup(page);let posts=0;page.on("request",r=>{if(new URL(r.url()).pathname==="/api/traffic/flow/purge")posts++});await page.goto("/settings");const link=page.getByRole("link",{name:"Открыть NetFlow",exact:true});await expect(link).toHaveAttribute("href","/data-collection#netflow");await link.click();await expect(page).toHaveURL(/data-collection#netflow$/);await expect(page.getByRole("region",{name:"Настройки NetFlow",exact:true})).toBeVisible();await expect(field(page)).toHaveValue("4739");expect(posts).toBe(0);await expect(page.getByRole("alertdialog")).toHaveCount(0)})
|
||||
Reference in new issue
Block a user