test(web): e2e проверяет пинг участника в плитке

Два реальных браузера в одной комнате: у каждого в плитке появляется своя
задержка («N мс», измеряется по WebRTC-статистике), а второй участник видит
пинг первого, пришедший по data-каналу LiveKit.
This commit is contained in:
2026-09-20 22:15:39 +03:00
parent 3fe634c9bc
commit 96acc40031
+22
View File
@@ -340,6 +340,28 @@ test.describe('голос: два клиента в одной комнате',
await expect(session.page.getByTestId(`voice-tile-${fixture.guestId}`)).toBeVisible();
}
// Пинг участника виден в плитке и обновляется: своё значение измеряется
// по статистике WebRTC, чужое приходит по data-каналу LiveKit.
for (const session of [adminSession, guestSession]) {
const ownLabel = session.page
.getByTestId(`voice-tile-${session === adminSession ? fixture.adminId : fixture.guestId}`)
.getByTestId('voice-quality-label');
await expect
.poll(async () => (await ownLabel.textContent()) ?? '', { timeout: 30_000 })
.toMatch(/\d+ мс/u);
}
// Каждый видит пинг другого участника.
await expect
.poll(
async () =>
(await adminSession.page
.getByTestId(`voice-tile-${fixture.guestId}`)
.getByTestId('voice-quality-label')
.textContent()) ?? '',
{ timeout: 30_000 },
)
.toMatch(/\d+ мс/u);
// Аудио реально приходит: ждём ненулевые байты входящего аудио-потока.
for (const session of [adminSession, guestSession]) {
await expect