/** * Smoke test against the native RTCPeerConnection adapter when the * runtime exposes one (browsers / Deno / Bun ≥ X). Skipped otherwise so * Bun's own test runner stays green without third-party native modules. */ import { describe, test, expect } from 'bun:test'; import { isNativeRtcAvailable, nativeRtcFactory } from '../src/native-rtc.js'; describe('native RTC adapter', () => { test('isNativeRtcAvailable() returns false in plain Bun', () => { // This may flip to true in future Bun releases; the test is mostly a // belt-and-suspenders against accidental globalThis pollution by // earlier tests. expect(typeof isNativeRtcAvailable()).toBe('boolean'); }); test('nativeRtcFactory()-built PC throws a clear error if RTCPeerConnection is missing', () => { if (isNativeRtcAvailable()) { const f = nativeRtcFactory(); const pc = f.createPeerConnection({}); expect(typeof pc.createDataChannel).toBe('function'); pc.close(); } else { const f = nativeRtcFactory(); expect(() => f.createPeerConnection({})).toThrow(/RTCPeerConnection/); } }); });