grafana/e2e-playwright/various-suite/graph-auto-migrate.spec.ts

72 lines
3.0 KiB
TypeScript

import { test, expect } from '@grafana/plugin-e2e';
const DASHBOARD_ID = 'XMjIZPmik';
const DASHBOARD_NAME = 'Panel Tests - Graph Time Regions';
const UPLOT_MAIN_DIV_SELECTOR = 'uplot-main-div';
const ANNOTATION_MARKER_SELECTOR = 'data-testid annotation-marker';
test.describe(
'Auto-migrate graph panel',
{
tag: ['@various'],
},
() => {
test('Graph panel is auto-migrated', async ({ gotoDashboardPage, page }) => {
await gotoDashboardPage({ uid: DASHBOARD_ID });
await expect(page.getByText(DASHBOARD_NAME)).toBeVisible();
await expect(page.getByTestId(UPLOT_MAIN_DIV_SELECTOR).first()).toBeHidden();
await gotoDashboardPage({ uid: DASHBOARD_ID });
await expect(page.getByTestId(UPLOT_MAIN_DIV_SELECTOR).first()).toBeVisible();
});
test('Annotation markers exist for time regions', async ({ gotoDashboardPage, selectors, page }) => {
const dashboardPage = await gotoDashboardPage({ uid: DASHBOARD_ID });
await expect(page.getByText(DASHBOARD_NAME)).toBeVisible();
await expect(page.getByTestId(UPLOT_MAIN_DIV_SELECTOR).first()).toBeHidden();
await gotoDashboardPage({ uid: DASHBOARD_ID });
// Check Business Hours panel
const businessHoursPanel = dashboardPage.getByGrafanaSelector(
selectors.components.Panels.Panel.title('Business Hours')
);
await expect(businessHoursPanel).toBeVisible();
const businessHoursMarker = businessHoursPanel.getByTestId(ANNOTATION_MARKER_SELECTOR).first();
await expect(businessHoursMarker).toBeVisible();
// Check Sunday's 20-23 panel
const sundayPanel = dashboardPage.getByGrafanaSelector(selectors.components.Panels.Panel.title("Sunday's 20-23"));
await expect(sundayPanel).toBeVisible();
const sundayMarker = sundayPanel.getByTestId(ANNOTATION_MARKER_SELECTOR).first();
await expect(sundayMarker).toBeVisible();
// Check Each day of week panel
const eachDayPanel = dashboardPage.getByGrafanaSelector(
selectors.components.Panels.Panel.title('Each day of week')
);
await expect(eachDayPanel).toBeVisible();
const eachDayMarker = eachDayPanel.getByTestId(ANNOTATION_MARKER_SELECTOR).first();
await expect(eachDayMarker).toBeVisible();
// Scroll to bottom
await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));
// Check 05:00 panel
const timePanel = dashboardPage.getByGrafanaSelector(selectors.components.Panels.Panel.title('05:00'));
await expect(timePanel).toBeVisible();
const timeMarker = timePanel.getByTestId(ANNOTATION_MARKER_SELECTOR).first();
await expect(timeMarker).toBeVisible();
// Check From 22:00 to 00:30 panel
const midnightPanel = dashboardPage.getByGrafanaSelector(
selectors.components.Panels.Panel.title('From 22:00 to 00:30 (crossing midnight)')
);
await expect(midnightPanel).toBeVisible();
const midnightMarker = midnightPanel.getByTestId(ANNOTATION_MARKER_SELECTOR).first();
await expect(midnightMarker).toBeVisible();
});
}
);