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();
|
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]) {
|
for (const session of [adminSession, guestSession]) {
|
||||||
await expect
|
await expect
|
||||||
|
|||||||
Reference in New Issue
Block a user