mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 01:15:46 +08:00

* Table: Force tableNextGen to be true for Playwright and false for Cypress * RDG query for body text contains the headers too * add some simple tests for row height * dial in the row height test a little more * more updates * filters, pagination * try this on CI * more updates to the tests * more tests * wait for some sort stuff to flush * replace class selectors for rdg * target the click to the anchor in the header
202 lines
8.5 KiB
TypeScript
202 lines
8.5 KiB
TypeScript
import { test, expect } from '@grafana/plugin-e2e';
|
|
|
|
const DASHBOARD_ID = 'P2jR04WVk';
|
|
|
|
test.use({
|
|
featureToggles: {
|
|
tableNextGen: true,
|
|
},
|
|
});
|
|
|
|
test.describe(
|
|
'Panels test: Geomap spatial operations',
|
|
{
|
|
tag: ['@panels'],
|
|
},
|
|
() => {
|
|
test('Tests location auto option', async ({ gotoDashboardPage, selectors, page }) => {
|
|
const dashboardPage = await gotoDashboardPage({
|
|
uid: DASHBOARD_ID,
|
|
queryParams: new URLSearchParams({ editPanel: '1' }),
|
|
});
|
|
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.Tab.title('Transformations')).click();
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.Transforms.addTransformationButton).click();
|
|
|
|
await dashboardPage
|
|
.getByGrafanaSelector(selectors.components.TransformTab.newTransform('Spatial operations'))
|
|
.click();
|
|
|
|
const actionLabel = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.actionLabel
|
|
);
|
|
const actionInput = actionLabel.locator('input');
|
|
await actionInput.fill('Prepare spatial field');
|
|
await actionInput.press('Enter');
|
|
|
|
await expect(
|
|
dashboardPage.getByGrafanaSelector(selectors.components.Transforms.SpatialOperations.locationLabel)
|
|
).toBeVisible();
|
|
|
|
const locationLabel = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.locationLabel
|
|
);
|
|
const locationInput = locationLabel.locator('input');
|
|
await locationInput.fill('Auto');
|
|
await locationInput.press('Enter');
|
|
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.PanelEditor.toggleTableView).click({ force: true });
|
|
const tableHeader = page.getByRole('grid').getByRole('row').first();
|
|
await expect(tableHeader).toBeVisible();
|
|
await expect(tableHeader.getByText('Point')).toBeVisible();
|
|
});
|
|
|
|
test('Tests location coords option', async ({ gotoDashboardPage, dashboardPage, selectors, page }) => {
|
|
await gotoDashboardPage({ uid: DASHBOARD_ID, queryParams: new URLSearchParams({ editPanel: '1' }) });
|
|
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.Tab.title('Transformations')).click();
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.Transforms.addTransformationButton).click();
|
|
|
|
await dashboardPage
|
|
.getByGrafanaSelector(selectors.components.TransformTab.newTransform('Spatial operations'))
|
|
.click();
|
|
|
|
const actionLabel = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.actionLabel
|
|
);
|
|
const actionInput = actionLabel.locator('input');
|
|
await actionInput.fill('Prepare spatial field');
|
|
await actionInput.press('Enter');
|
|
|
|
await expect(
|
|
dashboardPage.getByGrafanaSelector(selectors.components.Transforms.SpatialOperations.locationLabel)
|
|
).toBeVisible();
|
|
|
|
const locationLabel = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.locationLabel
|
|
);
|
|
const locationInput = locationLabel.locator('input');
|
|
await locationInput.fill('Coords');
|
|
await locationInput.press('Enter');
|
|
|
|
const latitudeField = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.location.coords.latitudeFieldLabel
|
|
);
|
|
await expect(latitudeField).toBeVisible();
|
|
const latitudeInput = latitudeField.locator('input');
|
|
await latitudeInput.fill('Lat');
|
|
await latitudeInput.press('Enter');
|
|
|
|
const longitudeField = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.location.coords.longitudeFieldLabel
|
|
);
|
|
await expect(longitudeField).toBeVisible();
|
|
const longitudeInput = longitudeField.locator('input');
|
|
await longitudeInput.fill('Lng');
|
|
await longitudeInput.press('Enter');
|
|
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.PanelEditor.toggleTableView).click({ force: true });
|
|
const tableHeader = page.getByRole('grid').getByRole('row').first();
|
|
await expect(tableHeader).toBeVisible();
|
|
await expect(tableHeader.getByText('Point')).toBeVisible();
|
|
});
|
|
|
|
test('Tests geoshash field column appears in table view', async ({
|
|
gotoDashboardPage,
|
|
dashboardPage,
|
|
selectors,
|
|
page,
|
|
}) => {
|
|
await gotoDashboardPage({ uid: DASHBOARD_ID, queryParams: new URLSearchParams({ editPanel: '1' }) });
|
|
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.Tab.title('Transformations')).click();
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.Transforms.addTransformationButton).click();
|
|
|
|
await dashboardPage
|
|
.getByGrafanaSelector(selectors.components.TransformTab.newTransform('Spatial operations'))
|
|
.click();
|
|
|
|
const actionLabel = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.actionLabel
|
|
);
|
|
const actionInput = actionLabel.locator('input');
|
|
await actionInput.fill('Prepare spatial field');
|
|
await actionInput.press('Enter');
|
|
|
|
await expect(
|
|
dashboardPage.getByGrafanaSelector(selectors.components.Transforms.SpatialOperations.locationLabel)
|
|
).toBeVisible();
|
|
|
|
const locationLabel = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.locationLabel
|
|
);
|
|
const locationInput = locationLabel.locator('input');
|
|
await locationInput.fill('Geohash');
|
|
await locationInput.press('Enter');
|
|
|
|
const geohashField = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.location.geohash.geohashFieldLabel
|
|
);
|
|
await expect(geohashField).toBeVisible();
|
|
const geohashFieldInput = geohashField.locator('input');
|
|
await geohashFieldInput.fill('State');
|
|
await geohashFieldInput.press('Enter');
|
|
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.PanelEditor.toggleTableView).click({ force: true });
|
|
const tableHeader = page.getByRole('grid').getByRole('row').first();
|
|
await expect(tableHeader).toBeVisible();
|
|
await expect(tableHeader.getByText('State 1')).toBeVisible();
|
|
});
|
|
|
|
test('Tests location lookup option', async ({ gotoDashboardPage, dashboardPage, selectors, page }) => {
|
|
await gotoDashboardPage({ uid: DASHBOARD_ID, queryParams: new URLSearchParams({ editPanel: '1' }) });
|
|
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.Tab.title('Transformations')).click();
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.Transforms.addTransformationButton).click();
|
|
|
|
await dashboardPage
|
|
.getByGrafanaSelector(selectors.components.TransformTab.newTransform('Spatial operations'))
|
|
.click();
|
|
|
|
const actionLabel = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.actionLabel
|
|
);
|
|
const actionInput = actionLabel.locator('input');
|
|
await actionInput.fill('Prepare spatial field');
|
|
await actionInput.press('Enter');
|
|
|
|
await expect(
|
|
dashboardPage.getByGrafanaSelector(selectors.components.Transforms.SpatialOperations.locationLabel)
|
|
).toBeVisible();
|
|
|
|
const locationLabel = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.locationLabel
|
|
);
|
|
const locationInput = locationLabel.locator('input');
|
|
await locationInput.fill('Lookup');
|
|
await locationInput.press('Enter');
|
|
|
|
const lookupField = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.location.lookup.lookupFieldLabel
|
|
);
|
|
await expect(lookupField).toBeVisible();
|
|
const lookupFieldInput = lookupField.locator('input');
|
|
await lookupFieldInput.fill('State');
|
|
await lookupFieldInput.press('Enter');
|
|
|
|
const gazetteerField = dashboardPage.getByGrafanaSelector(
|
|
selectors.components.Transforms.SpatialOperations.location.lookup.gazetteerFieldLabel
|
|
);
|
|
await expect(gazetteerField).toBeVisible();
|
|
const gazetteerFieldInput = gazetteerField.locator('input');
|
|
await gazetteerFieldInput.fill('USA States');
|
|
await gazetteerFieldInput.press('Enter');
|
|
|
|
await dashboardPage.getByGrafanaSelector(selectors.components.PanelEditor.toggleTableView).click({ force: true });
|
|
const tableHeader = page.getByRole('grid').getByRole('row').first();
|
|
await expect(tableHeader).toBeVisible();
|
|
await expect(tableHeader.getByText('Geometry')).toBeVisible();
|
|
});
|
|
}
|
|
);
|