Files
grafana/e2e-playwright/dashboards-suite/dashboard-export-json.spec.ts
Ashley Harrison 6408e3acaa E2E: Remove cypress dashboards-suite (#109038)
* add equivalent dashboard-time-zone test

* remove cypress dashboards-suite

* modify tests to work with schema-v2 + update workflow to run playwright instead

* fix package.json

* update CODEOWNERS

* fix start-server to include ARCH
2025-08-05 10:09:49 +01:00

73 lines
2.7 KiB
TypeScript

import { test, expect } from '@grafana/plugin-e2e';
test.use({
featureToggles: {
kubernetesDashboards: process.env.KUBERNETES_DASHBOARDS === 'true',
},
});
test.describe(
'Export as JSON',
{
tag: ['@dashboards'],
},
() => {
test('Export for internal and external use', async ({ gotoDashboardPage, page, selectors }) => {
const dashboardPage = await gotoDashboardPage({
uid: 'ZqZnVvFZz',
});
// Open the export drawer
await dashboardPage.getByGrafanaSelector(selectors.pages.Dashboard.DashNav.NewExportButton.arrowMenu).click();
await dashboardPage
.getByGrafanaSelector(selectors.pages.Dashboard.DashNav.NewExportButton.Menu.exportAsJson)
.click();
await expect(page).toHaveURL(/.*shareView=export.*/);
// Export as JSON
await expect(
dashboardPage.getByGrafanaSelector(selectors.pages.ExportDashboardDrawer.ExportAsJson.container)
).toBeVisible();
await expect(
dashboardPage.getByGrafanaSelector(selectors.pages.ExportDashboardDrawer.ExportAsJson.exportExternallyToggle)
).toBeChecked({
checked: false,
});
await expect(dashboardPage.getByGrafanaSelector(selectors.components.CodeEditor.container)).toBeVisible();
await expect(
dashboardPage.getByGrafanaSelector(selectors.pages.ExportDashboardDrawer.ExportAsJson.saveToFileButton)
).toBeVisible();
await expect(
dashboardPage.getByGrafanaSelector(selectors.pages.ExportDashboardDrawer.ExportAsJson.copyToClipboardButton)
).toBeVisible();
await expect(
dashboardPage.getByGrafanaSelector(selectors.pages.ExportDashboardDrawer.ExportAsJson.cancelButton)
).toBeVisible();
await dashboardPage
.getByGrafanaSelector(selectors.pages.ExportDashboardDrawer.ExportAsJson.copyToClipboardButton)
.click();
// TODO failing in CI - fix it
// let clipboardContent = await page.evaluate(() => navigator.clipboard.readText());
// expect(clipboardContent).not.toContain('__inputs');
await dashboardPage
.getByGrafanaSelector(selectors.pages.ExportDashboardDrawer.ExportAsJson.exportExternallyToggle)
.click({ force: true });
await dashboardPage
.getByGrafanaSelector(selectors.pages.ExportDashboardDrawer.ExportAsJson.copyToClipboardButton)
.click();
// TODO failing in CI - fix it
// clipboardContent = await page.evaluate(() => navigator.clipboard.readText());
// expect(clipboardContent).toContain('__inputs');
await dashboardPage.getByGrafanaSelector(selectors.pages.ExportDashboardDrawer.ExportAsJson.cancelButton).click();
await expect(page).not.toHaveURL(/.*shareView=export.*/);
});
}
);