livekit-client
Version:
JavaScript/TypeScript client SDK for LiveKit
31 lines (28 loc) • 1.07 kB
text/typescript
import { describe, expect, it } from 'vitest';
import Room from './Room';
import { RoomEvent } from './events';
describe('Active device switch', () => {
it('updates devices correctly', async () => {
const room = new Room();
await room.switchActiveDevice('audioinput', 'test');
expect(room.getActiveDevice('audioinput')).toBe('test');
});
it('updates devices with exact constraint', async () => {
const room = new Room();
await room.switchActiveDevice('audioinput', 'test', true);
expect(room.getActiveDevice('audioinput')).toBe('test');
});
it('emits changed event', async () => {
const room = new Room();
let kind: MediaDeviceKind | undefined;
let deviceId: string | undefined;
const deviceChangeHandler = (_kind: MediaDeviceKind, _deviceId: string) => {
kind = _kind;
deviceId = _deviceId;
};
room.on(RoomEvent.ActiveDeviceChanged, deviceChangeHandler);
await room.switchActiveDevice('audioinput', 'test', true);
expect(deviceId).toBe('test');
expect(kind).toBe('audioinput');
});
});