Skip to content

FCE-2840 Add livestream integration tests#479

Merged
czerwiukk merged 10 commits intomainfrom
FCE-2840/livestreaming-tests
Feb 24, 2026
Merged

FCE-2840 Add livestream integration tests#479
czerwiukk merged 10 commits intomainfrom
FCE-2840/livestreaming-tests

Conversation

@czerwiukk
Copy link
Member

Description

Runs simple livestream test using playwright.

Motivation and Context

We lacked some automatic livestream testing.

Documentation impact

  • Documentation update required
  • Documentation updated in another PR
  • No documentation update required

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to
    not work as expected)

@linear
Copy link

linear bot commented Feb 23, 2026

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Playwright-based E2E test app to exercise WHIP/WHEP livestream flows, and exposes WebRTC stats from the SDK to support “video is playing” assertions.

Changes:

  • Introduces a new @fishjam-e2e/livestream-client workspace (Vite + React) with Playwright scenarios for basic livestream publish/receive flows.
  • Extends ts-client livestream helpers and the react-client viewer hook with a getStatistics() API (used by the E2E assertions).
  • Applies formatting-only cleanups across the mobile example and Expo config plugins.

Reviewed changes

Copilot reviewed 32 out of 34 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
yarn.lock Adds the new e2e workspace entry and pins prettier.
packages/ts-client/src/livestream.ts Adds getStatistics() to publish/receive results by delegating to RTCPeerConnection.getStats().
packages/react-client/src/hooks/useLivestreamViewer.ts Exposes viewer getStatistics() for consumers (used by Playwright).
package.json Registers e2e-tests/livestream-client as a Yarn workspace.
examples/mobile-client/fishjam-chat/utils/fishjamIdStore.ts Removes trailing whitespace (format-only).
examples/mobile-client/fishjam-chat/tsconfig.json JSON formatting (single-line arrays).
examples/mobile-client/fishjam-chat/eslint.config.js Formatting / quote normalization.
examples/mobile-client/fishjam-chat/components/VideosGrid.tsx Formatting (commas/array formatting).
examples/mobile-client/fishjam-chat/components/NoCameraView.tsx Removes trailing whitespace (format-only).
examples/mobile-client/fishjam-chat/components/InCallButton.tsx Removes trailing whitespace (format-only).
examples/mobile-client/fishjam-chat/app/livestream/screen-sharing.tsx Formatting (comma in console.error args).
examples/mobile-client/fishjam-chat/app/_layout.tsx Formatting (expanded options objects).
examples/mobile-client/fishjam-chat/app/(tabs)/room.tsx Formatting + minor style cleanup in JSX/strings.
examples/mobile-client/fishjam-chat/README.md Formatting (blank lines before code fences).
examples/mobile-client/common/plugins/src/withLocalWebrtcPaths.ts Formatting (commas and console.log arg style).
examples/mobile-client/common/plugins/src/withLocalWebrtcIos.ts Formatting (quotes, line breaks).
examples/mobile-client/common/plugins/src/withLocalWebrtcAndroid.ts Formatting (quotes, line breaks).
examples/mobile-client/common/plugins/src/utils.ts Formatting (trailing comma).
e2e-tests/livestream-client/vite.config.ts Vite config for the new e2e app.
e2e-tests/livestream-client/tsconfig.node.json TS config for Node-side config files (Vite/Playwright/config).
e2e-tests/livestream-client/tsconfig.json TS config for app source build output.
e2e-tests/livestream-client/src/vite-env.d.ts Declares Vite env types for the app.
e2e-tests/livestream-client/src/main.tsx React entry point wiring FishjamProvider + app.
e2e-tests/livestream-client/src/canvasStream.ts Creates/stops a canvas-based MediaStream (CI-friendly fake video).
e2e-tests/livestream-client/src/App.tsx UI to publish/receive via sandbox helpers; exposes viewer on window for stats polling.
e2e-tests/livestream-client/scenarios/utils.ts Playwright helpers for start/stop and “video playing” assertions via stats.
e2e-tests/livestream-client/scenarios/basic.spec.ts Adds basic livestream publish/receive/reconnect test scenarios.
e2e-tests/livestream-client/scenarios/.gitkeep Placeholder file in scenarios directory.
e2e-tests/livestream-client/playwright.config.ts Playwright setup with dev server and chromium config.
e2e-tests/livestream-client/package.json New workspace package definition and scripts.
e2e-tests/livestream-client/index.html HTML entry for Vite.
e2e-tests/livestream-client/config.ts Provides fishjam endpoint default/env wiring for the app.
e2e-tests/livestream-client/README.md Documents the new e2e app (currently out of sync with implementation).
e2e-tests/livestream-client/.gitignore Ignores build artifacts and Playwright outputs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

czerwiukk and others added 4 commits February 23, 2026 13:13
@czerwiukk czerwiukk merged commit bdbcfba into main Feb 24, 2026
2 checks passed
@czerwiukk czerwiukk deleted the FCE-2840/livestreaming-tests branch February 24, 2026 11:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants