fix(ui): отличать пустую историю трафика от нулевой
This commit is contained in:
1 parent
7c6f937cec
commit
ec8e28d15d
4 files changed
+35
-12
No files matched your search
@@ -1,7 +1,7 @@
|
||||
import { test, expect, type Page } from '@playwright/test'
|
||||
|
||||
async function setup(page: Page) {
|
||||
const control = { holdRange: '', failIface: false, release: () => {} }
|
||||
const control = { holdRange: '', failIface: false, series: undefined as number[] | undefined, release: () => {} }
|
||||
const gate = new Promise<void>(resolve => { control.release = resolve })
|
||||
const server = { id: '1', name: 'Первый сервер', site: 'TEST', country: 'RU', status: 'online', rxNow: 2, txNow: 3, rxPeak: 5, txPeak: 6, rxTotal: 100, txTotal: 200, sessions: 1, rxSeries: [1, 2], txSeries: [2, 3] }
|
||||
await page.route('**/health', route => route.fulfill({ json: { ok: true } }))
|
||||
@@ -12,7 +12,7 @@ async function setup(page: Page) {
|
||||
const range = url.searchParams.get('range'), iface = url.searchParams.get('iface')
|
||||
if (control.holdRange && range === control.holdRange) await gate
|
||||
if (control.failIface && iface === 'ether2') return route.fulfill({ status: 500, json: { error: 'Интерфейс временно недоступен' } })
|
||||
return route.fulfill({ json: { server: { ...server, name: `Детали ${range} ${iface}`, rxNow: range === '24h' ? 24 : 15 } } })
|
||||
return route.fulfill({ json: { server: { ...server, rxSeries: control.series ?? server.rxSeries, txSeries: control.series ?? server.txSeries, name: `Детали ${range} ${iface}`, rxNow: range === '24h' ? 24 : 15 } } })
|
||||
}
|
||||
const json = path === '/api/auth/config' ? { required: false }
|
||||
: path === '/api/traffic/servers' ? { servers: [server] }
|
||||
@@ -72,3 +72,16 @@ for (const width of [320, 390]) {
|
||||
expect(await page.evaluate(() => document.documentElement.scrollWidth <= window.innerWidth + 1)).toBe(true)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
test('Трафик: пустая история отличается от нулевой', async ({ page }) => {
|
||||
const control = await setup(page)
|
||||
control.series = []
|
||||
await page.getByRole('button', { name: '24ч', exact: true }).click()
|
||||
await expect(page.getByText('Нет исторических измерений за выбранный период', { exact: true })).toBeVisible()
|
||||
await expect(page.getByRole('region', { name: 'История RX/TX' })).toHaveCount(0)
|
||||
control.series = [0, 0]
|
||||
await page.getByRole('button', { name: '15м', exact: true }).click()
|
||||
await expect(page.getByRole('region', { name: 'История RX/TX' })).toBeVisible()
|
||||
await expect(page.getByText('Нет исторических измерений за выбранный период', { exact: true })).toHaveCount(0)
|
||||
})
|
||||
Reference in new issue
Block a user