import {test,expect} from '@playwright/test' for(const width of [1440,320])test(`Пик трафика: неизвестный интервал, подтверждённый пик и ноль ${width}`,async({page})=>{ await page.setViewportSize({width,height:1000}) let peakKnown=false,peak=100 const server=()=>({id:'1',name:'Пик CHR',site:'TEST',country:'RU',status:'online',volumeUnit:'GiB',sessions:1, rxNow:0,txNow:0,rxPeak:peak,txPeak:peak,rxTotal:1,txTotal:1,rxSeries:[0,100],txSeries:[0,100], observations:{rxNow:true,txNow:true,rxPeak:peakKnown,txPeak:peakKnown,rxSeries:[false,true],txSeries:[false,true],sampledAt:'2026-10-13T00:00:00Z'}}) await page.route('**/health',r=>r.fulfill({json:{ok:true}})) await page.route('**/api/**',r=>{ const p=new URL(r.request().url()).pathname if(p.endsWith('/live'))return r.fulfill({status:503,json:{error:'Fixture без live'}}) return r.fulfill({json:p==='/api/auth/config'?{required:false}:p==='/api/traffic/servers'?{servers:[server()]}: p==='/api/traffic/servers/1'?{server:server()}:p.endsWith('/interfaces')||p==='/api/traffic/bound-interfaces'?{interfaces:[]}: p==='/api/traffic/users'?{users:[]}:p==='/api/servers'?[]:{}}) }) await page.goto('/traffic') const peakCard=page.locator('[data-slot="frame-panel"]').filter({has:page.getByText('Пик RX',{exact:true})}).first() await expect(peakCard).toContainText('—') await expect(page.getByRole('group',{name:'Учтённый объём по измерениям'})).toContainText('1 ГиБ') peakKnown=true;await page.getByRole('button',{name:'15м',exact:true}).click() await expect(peakCard).toContainText('100') peak=0;await page.getByRole('button',{name:'24ч',exact:true}).click() await expect(peakCard).toContainText('0') expect(await page.evaluate(()=>document.documentElement.scrollWidth<=innerWidth+1)).toBe(true) })