mirror of
https://github.com/grafana/grafana.git
synced 2024-11-25 02:10:45 -06:00
7bca69849f
* Mark Scenes feature toggles as GA * Move old arch e2e to a new folder * Run E2E on scenes by default * Upgrade e2e-selectors to ensure the tests in Playwright works
99 lines
3.1 KiB
TypeScript
99 lines
3.1 KiB
TypeScript
import { SnapshotCreateResponse } from '../../public/app/features/dashboard/services/SnapshotSrv';
|
|
import { e2e } from '../utils';
|
|
import { fromBaseUrl } from '../utils/support/url';
|
|
import '../utils/support/clipboard';
|
|
|
|
describe('Snapshots', () => {
|
|
beforeEach(() => {
|
|
e2e.flows.login(Cypress.env('USERNAME'), Cypress.env('PASSWORD'));
|
|
});
|
|
|
|
it('Create a snapshot dashboard', () => {
|
|
// Opening a dashboard
|
|
cy.intercept({
|
|
pathname: '/api/ds/query',
|
|
}).as('query');
|
|
e2e.flows.openDashboard({
|
|
uid: 'ZqZnVvFZz',
|
|
queryParams: { '__feature.scenes': true, '__feature.newDashboardSharingComponent': true },
|
|
});
|
|
cy.wait('@query');
|
|
|
|
//TODO Failing in CI/CD. Fix it
|
|
// cy.wrap(
|
|
// Cypress.automation('remote:debugger:protocol', {
|
|
// command: 'Browser.grantPermissions',
|
|
// params: {
|
|
// permissions: ['clipboardReadWrite', 'clipboardSanitizedWrite'],
|
|
// origin: window.location.origin,
|
|
// },
|
|
// })
|
|
// );
|
|
|
|
const panelsToCheck = [
|
|
'Raw Data Graph',
|
|
'Last non-null',
|
|
'min',
|
|
'Max',
|
|
'The data from graph above with seriesToColumns transform',
|
|
];
|
|
|
|
// Open the sharing drawer
|
|
e2e.pages.Dashboard.DashNav.newShareButton.arrowMenu().click();
|
|
e2e.pages.Dashboard.DashNav.newShareButton.menu.shareSnapshot().click();
|
|
|
|
// Publish snapshot
|
|
cy.intercept('POST', '/api/snapshots').as('create');
|
|
e2e.pages.ShareDashboardDrawer.ShareSnapshot.publishSnapshot().click();
|
|
cy.wait('@create')
|
|
.its('response')
|
|
.then((rs) => {
|
|
expect(rs.statusCode).eq(200);
|
|
const body: SnapshotCreateResponse = rs.body;
|
|
cy.visit(fromBaseUrl(getSnapshotUrl(body.key)));
|
|
|
|
// Validate the dashboard controls are rendered
|
|
e2e.pages.Dashboard.Controls().should('exist');
|
|
|
|
// Validate the panels are rendered
|
|
for (const title of panelsToCheck) {
|
|
e2e.components.Panels.Panel.title(title).should('be.visible');
|
|
}
|
|
});
|
|
|
|
// Copy link button should be visible
|
|
// e2e.pages.ShareDashboardDrawer.ShareSnapshot.copyUrlButton().should('exist');
|
|
|
|
//TODO Failing in CI/CD. Fix it
|
|
// Copy the snapshot URL form the clipboard and open the snapshot
|
|
// e2e.pages.ShareDashboardDrawer.ShareSnapshot.copyUrlButton()
|
|
// .click()
|
|
// .then(() => {
|
|
// cy.copyFromClipboard().then((url) => {
|
|
// cy.wrap(url).as('url');
|
|
// });
|
|
// })
|
|
// .then(() => {
|
|
// cy.get('@url').then((url) => {
|
|
// e2e.pages.ShareDashboardDrawer.ShareSnapshot.visit(getSnapshotKey(String(url)));
|
|
// });
|
|
//
|
|
// // Validate the dashboard controls are rendered
|
|
// e2e.pages.Dashboard.Controls().should('exist');
|
|
//
|
|
// // Validate the panels are rendered
|
|
// for (const title of panelsToCheck) {
|
|
// e2e.components.Panels.Panel.title(title).should('be.visible');
|
|
// }
|
|
// });
|
|
});
|
|
});
|
|
|
|
const getSnapshotUrl = (uid: string): string => {
|
|
return `/dashboard/snapshot/${uid}`;
|
|
};
|
|
|
|
// const getSnapshotKey = (url: string): string => {
|
|
// return url.split('/').pop();
|
|
// };
|