mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2025-12-30 11:22:31 +00:00
* fix(tests): Fix include/excludes of tests based on participant count. * feat(tests): Define context globally. The context is being created on every new suite in before hook. * feat(tests): Drop extra char in room name. * feat(tests): Adds an option to load iframeAPI. * feat(tests): Adds some ts types. * fix(tests): Fix iframeAPI helper with events received too early. * fix(tests): Fix iframeAPI helper detecting own role changed. * feat(tests): Adds run script to start tests with local dev server. * feat(tests): Adds participants iframeAPI tests. * feat(tests): Updates wdio dependencies. * feat: Adds grid config. * feat: Simplify iframeAPI. Drop URL params. * feat: Adds tenant to iframeAPI. * feat: Adds firefox target. Certain tests are disable as not supported on FF. Missing upload file function for iframeAPI helper. Missing option to set audio file as a mic source. * fix: Fix using tenant from baseUrl. * feat: Adds audio only tests. * feat: Adds option to generate tokens for the moderator. * feat: Adds option to test and webhooks. * fix: Improve error stack trace on error. * fix: Address comments. * fix: Fix test exclusion for FF. * squash: Revert the strophe change and add a comment.
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
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();
|
|
}
|
|
}
|