| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import { Key } from 'webdriverio';
-
- import BaseDialog from './BaseDialog';
-
- const VIDEO_QUALITY_SLIDER_CLASS = 'custom-slider';
-
- /**
- * The video quality dialog.
- */
- export default class VideoQualityDialog extends BaseDialog {
- /**
- * Opens the video quality dialog and sets the video quality to the minimum or maximum definition.
- * @param audioOnly - Whether to set the video quality to audio only (minimum).
- * @private
- */
- async setVideoQuality(audioOnly: boolean) {
- await this.participant.getToolbar().clickVideoQualityButton();
-
- const videoQualitySlider = this.participant.driver.$(`.${VIDEO_QUALITY_SLIDER_CLASS}`);
-
- const audioOnlySliderValue = parseInt(await videoQualitySlider.getAttribute('min'), 10);
-
- const maxDefinitionSliderValue = parseInt(await videoQualitySlider.getAttribute('max'), 10);
- const activeValue = parseInt(await videoQualitySlider.getAttribute('value'), 10);
-
- const targetValue = audioOnly ? audioOnlySliderValue : maxDefinitionSliderValue;
- const distanceToTargetValue = targetValue - activeValue;
- const keyDirection = distanceToTargetValue > 0 ? Key.ArrowRight : Key.ArrowLeft;
-
- // we need to click the element to activate it so it will receive the keys
- await videoQualitySlider.click();
-
- // Move the slider to the target value.
- for (let i = 0; i < Math.abs(distanceToTargetValue); i++) {
-
- await this.participant.driver.keys(keyDirection);
- }
-
- // Close the video quality dialog.
- await this.clickCloseButton();
- }
- }
|