* build test apps with webpack * add extensions test app * update e2e tests * remove non-build test apps using amd * use @grafana/plugin-configs rather than create-plugin config * Update e2e/plugin-e2e/plugin-e2e-api-tests/as-admin-user/extensions/usePluginComponents.spec.ts Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com> * Update package.json Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com> * use run dir variable instead of hardcoded path * add dummy licence file * add separate step for building test plugins * support nested plugins * remove react-router-dom from the externals array * remove add_mode dev * lint starlark * pass license path as env variable * fix the path * chore(e2e-plugins): clean up dependencies to match core versions * refactor(e2e-plugins): prefer extending webpack plugins-config * docs(e2e-plugins): add basic info to extensions test plugin readme * update readme * change dir name from custom plugins to test plugins * change root readme * update lockfile --------- Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
45 lines
2.0 KiB
TypeScript
45 lines
2.0 KiB
TypeScript
import { selectors } from '@grafana/e2e-selectors';
|
|
import { expect, test } from '@grafana/plugin-e2e';
|
|
|
|
import { ensureExtensionRegistryIsPopulated } from './utils';
|
|
|
|
const panelTitle = 'Link with defaults';
|
|
const extensionTitle = 'Open from time series...';
|
|
const testIds = {
|
|
modal: {
|
|
container: 'ape-modal-body',
|
|
},
|
|
mainPage: {
|
|
container: 'main-app-body',
|
|
},
|
|
};
|
|
|
|
const linkOnClickDashboardUid = 'dbfb47c5-e5e5-4d28-8ac7-35f349b95946';
|
|
const linkPathDashboardUid = 'd1fbb077-cd44-4738-8c8a-d4e66748b719';
|
|
|
|
test('should add link extension (path) with defaults to time series panel', async ({ gotoDashboardPage, page }) => {
|
|
const dashboardPage = await gotoDashboardPage({ uid: linkPathDashboardUid });
|
|
await ensureExtensionRegistryIsPopulated(page);
|
|
const panel = await dashboardPage.getPanelByTitle(panelTitle);
|
|
await panel.clickOnMenuItem(extensionTitle, { parentItem: 'Extensions' });
|
|
await expect(page.getByTestId(testIds.mainPage.container)).toBeVisible();
|
|
});
|
|
|
|
test('should add link extension (onclick) with defaults to time series panel', async ({ gotoDashboardPage, page }) => {
|
|
const dashboardPage = await gotoDashboardPage({ uid: linkOnClickDashboardUid });
|
|
await ensureExtensionRegistryIsPopulated(page);
|
|
const panel = await dashboardPage.getPanelByTitle(panelTitle);
|
|
await panel.clickOnMenuItem(extensionTitle, { parentItem: 'Extensions' });
|
|
await expect(page.getByRole('dialog')).toContainText('Select query from "Link with defaults"');
|
|
});
|
|
|
|
test('should add link extension (onclick) with new title to pie chart panel', async ({ gotoDashboardPage, page }) => {
|
|
const panelTitle = 'Link with new name';
|
|
const extensionTitle = 'Open from piechart';
|
|
const dashboardPage = await gotoDashboardPage({ uid: linkOnClickDashboardUid });
|
|
await ensureExtensionRegistryIsPopulated(page);
|
|
const panel = await dashboardPage.getPanelByTitle(panelTitle);
|
|
await panel.clickOnMenuItem(extensionTitle, { parentItem: 'Extensions' });
|
|
await expect(page.getByRole('dialog')).toContainText('Select query from "Link with new name"');
|
|
});
|