mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
fix(test): update e2e menu selectors (#1674)
This commit is contained in:
@@ -15,14 +15,22 @@ function withinControls(selector: string): string {
|
||||
return `media-controls ${selector}, .media-controls ${selector}`;
|
||||
}
|
||||
|
||||
/** Scope a descendant selector to each comma-separated panel matcher. */
|
||||
function withinMenuPanel(panelSelector: string, descendant: string): string {
|
||||
return panelSelector
|
||||
function unchecked(selector: string): string {
|
||||
return selector
|
||||
.split(',')
|
||||
.map((panel) => `${panel.trim()} ${descendant}`)
|
||||
.map((part) => `${part.trim()}[aria-checked="false"]`)
|
||||
.join(', ');
|
||||
}
|
||||
|
||||
const menu = '[role="menu"]';
|
||||
const item = '[role="menuitem"]';
|
||||
const option = '[role="menuitemradio"]';
|
||||
const activeMenu = `${menu}[data-menu-view-state="active"]`;
|
||||
const playbackRateOptions = [
|
||||
`#playback-rate-menu ${option}`,
|
||||
withinControls(`.media-menu--playback-rate ${option}`),
|
||||
].join(', ');
|
||||
|
||||
export const SELECTORS = {
|
||||
// Player containers
|
||||
// HTML: <video-player>, React: wrapper div around VideoSkin
|
||||
@@ -47,37 +55,16 @@ export const SELECTORS = {
|
||||
withinControls('.media-button--playback-rate'),
|
||||
withinControls('button[aria-haspopup="menu"][aria-label^="Playback rate"]:not(.media-menu__item)'),
|
||||
].join(', '),
|
||||
playbackRateMenuPanel: '#playback-rate-menu[role="menu"], [role="menu"]#playback-rate-menu',
|
||||
playbackRateMenuRadioItems: withinMenuPanel(
|
||||
'#playback-rate-menu[role="menu"], [role="menu"]#playback-rate-menu',
|
||||
'[role="menuitemradio"]'
|
||||
),
|
||||
/** Standalone playback rate menu items (HTML id + React open menu in controls). */
|
||||
openPlaybackRateMenuRadioItems: [
|
||||
withinMenuPanel('#playback-rate-menu[role="menu"], [role="menu"]#playback-rate-menu', '[role="menuitemradio"]'),
|
||||
withinControls('[role="menu"] [role="menuitemradio"]'),
|
||||
].join(', '),
|
||||
/** Currently visible settings submenu panel (HTML + React). */
|
||||
activeMenuPanel: '[role="menu"][data-menu-view-state="active"]',
|
||||
activeMenuRadioItems: '[role="menu"][data-menu-view-state="active"] [role="menuitemradio"]',
|
||||
playbackRateUncheckedOptions: unchecked(playbackRateOptions),
|
||||
activeMenuOptions: `${activeMenu} ${option}`,
|
||||
activeMenuUncheckedOptions: unchecked(`${activeMenu} ${option}`),
|
||||
settingsButton: [
|
||||
withinControls('.media-button--settings'),
|
||||
withinControls('button[commandfor="settings-menu"]'),
|
||||
withinControls('button[aria-label="Settings"]'),
|
||||
].join(', '),
|
||||
settingsCaptionsItem: [
|
||||
'media-menu-item[commandfor="settings-captions-menu"]',
|
||||
'[role="menuitem"]:has-text("Captions")',
|
||||
].join(', '),
|
||||
settingsSpeedItem: ['media-menu-item[commandfor="settings-speed-menu"]', '[role="menuitem"]:has-text("Speed")'].join(
|
||||
', '
|
||||
),
|
||||
settingsSpeedMenuPanel: '#settings-speed-menu[role="menu"], [role="menu"]#settings-speed-menu',
|
||||
settingsCaptionsMenuPanel: '#settings-captions-menu[role="menu"], [role="menu"]#settings-captions-menu',
|
||||
settingsCaptionsMenuRadioItems: withinMenuPanel(
|
||||
'#settings-captions-menu[role="menu"], [role="menu"]#settings-captions-menu',
|
||||
'[role="menuitemradio"]'
|
||||
),
|
||||
settingsCaptionsItem: `${item}:has-text("Captions")`,
|
||||
settingsSpeedItem: `${item}:has-text("Speed")`,
|
||||
|
||||
// Sliders
|
||||
// HTML: <media-time-slider>, React: horizontal .media-slider inside .media-time-controls
|
||||
|
||||
Reference in New Issue
Block a user