diff --git a/web/e2e/voice.spec.ts b/web/e2e/voice.spec.ts index dd07630..d795ffc 100644 --- a/web/e2e/voice.spec.ts +++ b/web/e2e/voice.spec.ts @@ -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