Skip to content

Commit

Permalink
added createAndAddLensFromDashboard to the lens_page object
Browse files Browse the repository at this point in the history
  • Loading branch information
ThomThomson committed Feb 1, 2021
1 parent 88d68d2 commit d669a8f
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 62 deletions.
31 changes: 1 addition & 30 deletions x-pack/test/functional/apps/dashboard/dashboard_lens_by_value.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,40 +10,11 @@ import { FtrProviderContext } from '../../ftr_provider_context';
export default function ({ getPageObjects, getService }: FtrProviderContext) {
const PageObjects = getPageObjects(['common', 'dashboard', 'visualize', 'lens']);

const log = getService('log');
const find = getService('find');
const esArchiver = getService('esArchiver');
const dashboardPanelActions = getService('dashboardPanelActions');
const dashboardVisualizations = getService('dashboardVisualizations');

async function createAndAddLensByValue() {
log.debug(`createAndAddLensByValue`);
const inViewMode = await PageObjects.dashboard.getIsInViewMode();
if (inViewMode) {
await PageObjects.dashboard.switchToEditMode();
}
await PageObjects.visualize.clickLensWidget();
await PageObjects.lens.goToTimeRange();
await PageObjects.lens.configureDimension({
dimension: 'lnsXY_xDimensionPanel > lns-empty-dimension',
operation: 'date_histogram',
field: '@timestamp',
});

await PageObjects.lens.configureDimension({
dimension: 'lnsXY_yDimensionPanel > lns-empty-dimension',
operation: 'avg',
field: 'bytes',
});

await PageObjects.lens.configureDimension({
dimension: 'lnsXY_splitDimensionPanel > lns-empty-dimension',
operation: 'terms',
field: 'ip',
});
await PageObjects.lens.saveAndReturn();
}

describe('dashboard lens by value', function () {
before(async () => {
await esArchiver.loadIfNeeded('logstash_functional');
Expand All @@ -55,7 +26,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {

it('can add a lens panel by value', async () => {
await dashboardVisualizations.ensureNewVisualizationDialogIsShowing();
await createAndAddLensByValue();
await PageObjects.lens.createAndAddLensFromDashboard({});
const newPanelCount = await PageObjects.dashboard.getPanelCount();
expect(newPanelCount).to.eql(1);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import expect from '@kbn/expect';

export default function ({ getPageObjects, getService }) {
const log = getService('log');
const testSubjects = getService('testSubjects');
const esArchiver = getService('esArchiver');
const dashboardVisualizations = getService('dashboardVisualizations');
Expand All @@ -27,40 +26,12 @@ export default function ({ getPageObjects, getService }) {
await PageObjects.dashboard.gotoDashboardLandingPage();
});

async function createAndAddLens(title, saveAsNew = false, redirectToOrigin = true) {
log.debug(`createAndAddLens(${title})`);
const inViewMode = await PageObjects.dashboard.getIsInViewMode();
if (inViewMode) {
await PageObjects.dashboard.switchToEditMode();
}
await PageObjects.visualize.clickLensWidget();
await PageObjects.lens.goToTimeRange();
await PageObjects.lens.configureDimension({
dimension: 'lnsXY_xDimensionPanel > lns-empty-dimension',
operation: 'date_histogram',
field: '@timestamp',
});

await PageObjects.lens.configureDimension({
dimension: 'lnsXY_yDimensionPanel > lns-empty-dimension',
operation: 'avg',
field: 'bytes',
});

await PageObjects.lens.configureDimension({
dimension: 'lnsXY_splitDimensionPanel > lns-empty-dimension',
operation: 'terms',
field: 'ip',
});
await PageObjects.lens.save(title, saveAsNew, redirectToOrigin);
}

it('adds Lens visualization to empty dashboard', async () => {
const title = 'Dashboard Test Lens';
await testSubjects.exists('addVisualizationButton');
await testSubjects.click('addVisualizationButton');
await dashboardVisualizations.ensureNewVisualizationDialogIsShowing();
await createAndAddLens(title);
await PageObjects.lens.createAndAddLensFromDashboard({ title, redirectToOrigin: true });
await PageObjects.dashboard.waitForRenderComplete();
await testSubjects.exists(`embeddablePanelHeading-${title}`);
});
Expand Down Expand Up @@ -118,7 +89,7 @@ export default function ({ getPageObjects, getService }) {
await testSubjects.exists('dashboardAddNewPanelButton');
await testSubjects.click('dashboardAddNewPanelButton');
await dashboardVisualizations.ensureNewVisualizationDialogIsShowing();
await createAndAddLens(title, false, false);
await PageObjects.lens.createAndAddLensFromDashboard({ title });
await PageObjects.lens.notLinkedToOriginatingApp();
await PageObjects.common.navigateToApp('dashboard');
});
Expand Down
46 changes: 45 additions & 1 deletion x-pack/test/functional/page_objects/lens_page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont
const find = getService('find');
const comboBox = getService('comboBox');
const browser = getService('browser');
const PageObjects = getPageObjects(['header', 'timePicker', 'common', 'visualize']);
const PageObjects = getPageObjects(['header', 'timePicker', 'common', 'visualize', 'dashboard']);

return logWrapper('lensPage', log, {
/**
Expand Down Expand Up @@ -586,5 +586,49 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont
// TODO: target dimensionTrigger color element after merging https://github.com/elastic/kibana/pull/76871
await testSubjects.getAttribute('colorPickerAnchor', color);
},

/**
* Creates and saves a lens visualization from a dashboard
*
* @param title - title for the new lens. If left undefined, the panel will be created by value
* @param redirectToOrigin - whether to redirect back to the dashboard after saving the panel
*/
async createAndAddLensFromDashboard({
title,
redirectToOrigin,
}: {
title?: string;
redirectToOrigin?: boolean;
}) {
log.debug(`createAndAddLens${title}`);
const inViewMode = await PageObjects.dashboard.getIsInViewMode();
if (inViewMode) {
await PageObjects.dashboard.switchToEditMode();
}
await PageObjects.visualize.clickLensWidget();
await this.goToTimeRange();
await this.configureDimension({
dimension: 'lnsXY_xDimensionPanel > lns-empty-dimension',
operation: 'date_histogram',
field: '@timestamp',
});

await this.configureDimension({
dimension: 'lnsXY_yDimensionPanel > lns-empty-dimension',
operation: 'avg',
field: 'bytes',
});

await this.configureDimension({
dimension: 'lnsXY_splitDimensionPanel > lns-empty-dimension',
operation: 'terms',
field: 'ip',
});
if (title) {
await this.save(title, false, redirectToOrigin);
} else {
await this.saveAndReturn();
}
},
});
}

0 comments on commit d669a8f

Please sign in to comment.