@realeye-io/realtesting-webrtc
v1.0.3
Published
WebRTC emulation (RTCPeerConnection) for automated testing
Downloads
0
Readme
@realeye-io/realtesting-webrtc
In-memory WebRTC emulation (RTCPeerConnection) for automated browser testing.
This package is part of the RealTesting suite from RealEye.io. It provides a virtual RTCPeerConnection that operates entirely in-memory — no STUN/TURN servers, no external network connections required.
RealEye feature: Hosted Sessions
Installation
npm install @realeye-io/realtesting-webrtcQuick Start
import { RealWebRTC } from '@realeye-io/realtesting-webrtc';
// Install the emulator
RealWebRTC.install();
// Create in-memory peer connections
const pc1 = new RTCPeerConnection();
const pc2 = new RTCPeerConnection();
// Signaling via test API — no network needed
const offer = await pc1.createOffer();
await pc1.setLocalDescription(offer);
await pc2.setRemoteDescription(offer);
const answer = await pc2.createAnswer();
await pc2.setLocalDescription(answer);
await pc1.setRemoteDescription(answer);Modes
| Mode | Behavior |
|------|----------|
| virtual | Use in-memory RTCPeerConnection (default) |
| native | Delegate to real RTCPeerConnection |
| prefer-virtual | Try virtual first, fall back to native |
| prefer-native | Try native first, fall back to virtual |
Emulated API Surface
The virtual RTCPeerConnection supports:
createOffer()/createAnswer()setLocalDescription()/setRemoteDescription()createDataChannel()/ondatachanneladdTrack()/ontrackclose()- Connection state events (
onconnectionstatechange, etc.)
All signaling and data exchange happens in-memory between peer connections in the same browser context.
Demo App
git clone https://github.com/RealEye-io/realtesting-open.git
cd realtesting-open
npm install
npm run dev:webrtc # https://localhost:4177Test API
When test mode is enabled (?realtestingTest=1), the test API is available at window.__realtestingWebrtcTestApi:
// Configure via test API
await window.__realtestingWebrtcTestApi.configure({
rtcMode: "virtual",
blockNativePeerConnection: true
});
// Get state
const state = window.__realtestingWebrtcTestApi.getState();
console.log(state.virtualConnections);
// Close all virtual connections
window.__realtestingWebrtcTestApi.closeAllVirtualConnections();Resources
| Resource | Link | |----------|------| | RealTesting monorepo | GitHub | | Full documentation | README.md | | npm page | npmjs | | Issues | GitHub Issues | | License | MIT |
