|
|
|
@ -7,26 +7,51 @@ export enum PanelMenuItems { |
|
|
|
|
Extensions = 'Extensions', |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export const openPanelMenuItem = (menu: PanelMenuItems, panelTitle = 'Panel Title', isReactPanel = false) => { |
|
|
|
|
export const openPanelMenuItem = (menu: PanelMenuItems, panelTitle = 'Panel Title') => { |
|
|
|
|
// we changed the way we open the panel menu in react panels with the new panel header
|
|
|
|
|
if (isReactPanel) { |
|
|
|
|
e2e.components.Panels.Panel.menu(panelTitle).click({ force: true }); // force click because menu is hidden and show on hover
|
|
|
|
|
e2e.components.Panels.Panel.menuItems(menu).should('be.visible').click(); |
|
|
|
|
} else { |
|
|
|
|
// this is the old way of opening the panel menu from the title
|
|
|
|
|
e2e.components.Panels.Panel.title(panelTitle).should('be.visible').click(); |
|
|
|
|
e2e.components.Panels.Panel.headerItems(menu).should('be.visible').click(); |
|
|
|
|
} |
|
|
|
|
detectPanelType(panelTitle, (isAngularPanel) => { |
|
|
|
|
if (isAngularPanel) { |
|
|
|
|
e2e.components.Panels.Panel.title(panelTitle).should('be.visible').click(); |
|
|
|
|
e2e.components.Panels.Panel.headerItems(menu).should('be.visible').click(); |
|
|
|
|
} else { |
|
|
|
|
e2e.components.Panels.Panel.menu(panelTitle).click({ force: true }); // force click because menu is hidden and show on hover
|
|
|
|
|
e2e.components.Panels.Panel.menuItems(menu).should('be.visible').click(); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
export const openPanelMenuExtension = (extensionTitle: string, panelTitle = 'Panel Title') => { |
|
|
|
|
e2e.components.Panels.Panel.title(panelTitle).should('be.visible').click(); |
|
|
|
|
const menuItem = PanelMenuItems.Extensions; |
|
|
|
|
// we changed the way we open the panel menu in react panels with the new panel header
|
|
|
|
|
detectPanelType(panelTitle, (isAngularPanel) => { |
|
|
|
|
if (isAngularPanel) { |
|
|
|
|
e2e.components.Panels.Panel.title(panelTitle).should('be.visible').click(); |
|
|
|
|
e2e.components.Panels.Panel.headerItems(menuItem) |
|
|
|
|
.should('be.visible') |
|
|
|
|
.parent() |
|
|
|
|
.parent() |
|
|
|
|
.invoke('addClass', 'open'); |
|
|
|
|
e2e.components.Panels.Panel.headerItems(extensionTitle).should('be.visible').click(); |
|
|
|
|
} else { |
|
|
|
|
e2e.components.Panels.Panel.menu(panelTitle).click({ force: true }); // force click because menu is hidden and show on hover
|
|
|
|
|
e2e.components.Panels.Panel.menuItems(menuItem).trigger('mouseover', { force: true }); |
|
|
|
|
e2e.components.Panels.Panel.menuItems(extensionTitle).click({ force: true }); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
e2e.components.Panels.Panel.headerItems(PanelMenuItems.Extensions) |
|
|
|
|
.should('be.visible') |
|
|
|
|
.parent() |
|
|
|
|
.parent() |
|
|
|
|
.invoke('addClass', 'open'); |
|
|
|
|
function detectPanelType(panelTitle: string, detected: (isAngularPanel: boolean) => void) { |
|
|
|
|
e2e.components.Panels.Panel.title(panelTitle).then((el) => { |
|
|
|
|
const isAngularPanel = el.find('plugin-component.ng-scope').length > 0; |
|
|
|
|
|
|
|
|
|
e2e.components.Panels.Panel.headerItems(extensionTitle).should('be.visible').click(); |
|
|
|
|
}; |
|
|
|
|
if (isAngularPanel) { |
|
|
|
|
Cypress.log({ |
|
|
|
|
name: 'detectPanelType', |
|
|
|
|
displayName: 'detector', |
|
|
|
|
message: 'Angular panel detected, will use legacy selectors.', |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
detected(isAngularPanel); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|