@fakes/media-devices
Version:
A interactive fake implementation of MediaDevices interface in the browser for testing
25 lines (24 loc) • 699 B
JavaScript
import { LocalListenerPropertySync } from '../LocalListenerPropertySync';
export class PermissionStatusFake extends EventTarget {
constructor(_state) {
super();
this._state = _state;
this._changeListener = new LocalListenerPropertySync(this, 'change');
}
get state() {
return this._state;
}
updateTo(updatedPermission) {
if (this._state === updatedPermission) {
return;
}
this._state = updatedPermission;
this.dispatchEvent(new Event('change'));
}
set onchange(listener) {
this._changeListener.set(listener);
}
get onchange() {
return this._changeListener.get();
}
}