grafana/e2e/smoke-tests-suite/panels_smokescreen.spec.ts

46 lines
2.0 KiB
TypeScript
Raw Normal View History

import { e2e } from '@grafana/e2e';
import { GrafanaBootConfig } from '@grafana/runtime';
e2e.scenario({
describeName: 'Panels smokescreen',
itName: 'Tests each panel type in the panel edit view to ensure no crash',
addScenarioDataSource: false,
addScenarioDashBoard: false,
skipScenario: false,
scenario: () => {
e2e.flows.addDashboard();
// TODO: Try and use e2e.flows.addPanel() instead of block below
try {
e2e.components.PageToolbar.itemButton('Add panel button').should('be.visible');
e2e.components.PageToolbar.itemButton('Add panel button').click();
} catch (e) {
// Depending on the screen size, the "Add panel" button might be hidden
e2e.components.PageToolbar.item('Show more items').click();
e2e.components.PageToolbar.item('Add panel button').last().click();
}
e2e.pages.AddDashboard.itemButton('Add new visualization menu item').should('be.visible');
e2e.pages.AddDashboard.itemButton('Add new visualization menu item').click();
e2e()
.window()
.then((win: Cypress.AUTWindow & { grafanaBootData: GrafanaBootConfig['bootData'] }) => {
// Loop through every panel type and ensure no crash
Object.entries(win.grafanaBootData.settings.panels).forEach(([_, panel]) => {
// TODO: Remove Flame Graph check as part of addressing #66803
if (!panel.hideFromList && panel.state !== 'deprecated' && panel.name !== 'Flame Graph') {
e2e.components.PanelEditor.toggleVizPicker().click();
e2e.components.PluginVisualization.item(panel.name).scrollIntoView().should('be.visible').click();
// Wait for panel to load (TODO: Better way to do this?)
cy.wait(500);
e2e.components.PanelEditor.toggleVizPicker().should((e) => expect(e).to.contain(panel.name));
// TODO: Come up with better check / better failure messaging to clearly indicate which panel failed
cy.contains('An unexpected error happened').should('not.exist');
}
});
});
},
});