@fakes/media-devices
Version:
A interactive fake implementation of MediaDevices interface in the browser for testing
21 lines (18 loc) • 722 B
text/typescript
import { Context } from '../context'
import { UserConsentTracker } from '../UserConsentTracker'
export class PermissionsFake implements Permissions {
constructor(private readonly context: Context, private readonly consentTracker: UserConsentTracker) {}
query(
permissionDesc:
| PermissionDescriptor
| DevicePermissionDescriptor
| MidiPermissionDescriptor
| PushPermissionDescriptor,
): Promise<PermissionStatus> {
const kind = permissionDesc.name
if (kind !== 'camera' && kind !== 'microphone') {
this.context.notImplemented.call(`permissions.query() does not support ${kind} for now`)
}
return Promise.resolve(this.consentTracker.permissionStatusFor(kind))
}
}