test(web): e2e проверяет пинг участника в плитке
Два реальных браузера в одной комнате: у каждого в плитке появляется своя задержка («N мс», измеряется по WebRTC-статистике), а второй участник видит пинг первого, пришедший по data-каналу LiveKit.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user