fix(traffic): подтверждать свежесть статусов привязанных интерфейсов
This commit is contained in:
1 parent
2b3d583e3b
commit
b4d0733cfa
27 files changed
+1463
-36
No files matched your search
@@ -0,0 +1,12 @@
|
||||
import {test,expect} from "@playwright/test"
|
||||
import {observedTrafficFixturePayload} from "./traffic-observation-fixture"
|
||||
for(const width of[1440,320])test(`Статус интерфейса: fresh/expired/legacy ${width}`,async({page})=>{
|
||||
const at=new Date("2026-10-12T12:00:00Z");await page.clock.install({time:at});await page.setViewportSize({width,height:1000});let legacy=false
|
||||
const iface=()=>({id:"i1",bindingId:"b1",userId:"u1",userLogin:"user",userName:"User",interfaceName:"ether1",interfaceType:"ether",comment:"",serverId:"1",serverName:"CHR",serverSite:"TEST",serverCountry:"RU",status:"online",...(!legacy?{statusObservedAt:at.toISOString(),statusExpiresAt:new Date(at.getTime()+90_000).toISOString()}:{}),rxNow:0,txNow:0,rxPeak:0,txPeak:0,rxTotal:0,txTotal:0,rxSeries:[0,0],txSeries:[0,0]})
|
||||
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:observedTrafficFixturePayload(path==="/api/auth/config"?{required:false}:path==="/api/traffic/servers"?{servers:[]}:path==="/api/traffic/users"?{users:[{id:"u1",login:"user",displayName:"User",role:"viewer",interfaces:[iface()],rxNow:0,txNow:0,rxPeak:0,txPeak:0,rxTotal:0,txTotal:0,rxSeries:[0,0],txSeries:[0,0]}]}:path==="/api/traffic/bound-interfaces"?{interfaces:[iface()]}:path==="/api/servers"?[]:{})})})
|
||||
await page.goto("/traffic");await page.getByRole("group",{name:"Разделы трафика"}).getByRole("button",{name:"Клиенты",exact:true}).click()
|
||||
await expect(page.getByText("Работает",{exact:true})).toBeVisible();await page.clock.fastForward(100_001)
|
||||
await expect(page.getByText("Работает",{exact:true})).toHaveCount(0);await expect(page.getByText("Нет данных",{exact:true})).toBeVisible()
|
||||
legacy=true;await page.getByRole("button",{name:"15м",exact:true}).click();await expect(page.getByText("Нет данных",{exact:true})).toBeVisible()
|
||||
expect(await page.evaluate(()=>document.documentElement.scrollWidth<=innerWidth+1)).toBe(true)
|
||||
})
|
||||
Reference in new issue
Block a user