grafana/e2e-playwright/panels-suite/geomap-map-controls.spec.ts

84 lines
3.5 KiB
TypeScript

import { test, expect } from '@grafana/plugin-e2e';
const DASHBOARD_ID = 'P2jR04WVk';
test.describe(
'Panels test: Geomap layer controls options',
{
tag: ['@panels'],
},
() => {
test('Tests map controls options', async ({ gotoDashboardPage, selectors, page }) => {
const dashboardPage = await gotoDashboardPage({
uid: DASHBOARD_ID,
queryParams: new URLSearchParams({ editPanel: '1' }),
});
// Wait until the query editor has been loaded by ensuring that the QueryEditor select contains the text 'flight_info_by_state.csv'
await expect(
page.locator(selectors.components.Select.singleValue('')).getByText('flight_info_by_state.csv')
).toBeVisible();
const mapControlsGroup = dashboardPage.getByGrafanaSelector(
selectors.components.OptionsGroup.group('Map controls')
);
await expect(mapControlsGroup).toBeVisible();
// Show zoom field
const showZoomField = dashboardPage.getByGrafanaSelector(selectors.components.PanelEditor.showZoomField);
await expect(showZoomField).toBeVisible();
const zoomCheckbox = showZoomField.locator('input[type="checkbox"]');
await zoomCheckbox.check({ force: true });
await expect(zoomCheckbox).toBeChecked();
// Show attribution
const showAttributionField = dashboardPage.getByGrafanaSelector(
selectors.components.PanelEditor.showAttributionField
);
await expect(showAttributionField).toBeVisible();
const attributionCheckbox = showAttributionField.locator('input[type="checkbox"]');
await attributionCheckbox.check({ force: true });
await expect(attributionCheckbox).toBeChecked();
// Show scale
const showScaleField = dashboardPage.getByGrafanaSelector(selectors.components.PanelEditor.showScaleField);
await expect(showScaleField).toBeVisible();
const scaleCheckbox = showScaleField.locator('input[type="checkbox"]');
await scaleCheckbox.check({ force: true });
await expect(scaleCheckbox).toBeChecked();
// Show measure tool
const showMeasureField = dashboardPage.getByGrafanaSelector(selectors.components.PanelEditor.showMeasureField);
await expect(showMeasureField).toBeVisible();
const measureCheckbox = showMeasureField.locator('input[type="checkbox"]');
await measureCheckbox.check({ force: true });
await expect(measureCheckbox).toBeChecked();
// Show debug
const showDebugField = dashboardPage.getByGrafanaSelector(selectors.components.PanelEditor.showDebugField);
await expect(showDebugField).toBeVisible();
const debugCheckbox = showDebugField.locator('input[type="checkbox"]');
await debugCheckbox.check({ force: true });
await expect(debugCheckbox).toBeChecked();
const panelContent = dashboardPage.getByGrafanaSelector(selectors.components.Panels.Panel.content);
await expect(panelContent).toBeVisible();
// Verify zoom
await expect(panelContent.locator('.ol-zoom')).toBeVisible();
// Verify attribution
await expect(panelContent.locator('.ol-attribution')).toBeVisible();
// Verify scale
await expect(panelContent.locator('.ol-scale-line')).toBeVisible();
// Verify measure tool
await expect(dashboardPage.getByGrafanaSelector(selectors.components.PanelEditor.measureButton)).toBeVisible();
// Verify debug tool
await expect(dashboardPage.getByGrafanaSelector(selectors.components.DebugOverlay.wrapper)).toBeVisible();
});
}
);