2021-02-10 19:48:32 +01:00
|
|
|
/*
|
|
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
|
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
|
|
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
|
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
|
|
* Side Public License, v 1.
|
|
|
|
*/
|
|
|
|
|
|
|
|
import { FtrProviderContext } from 'test/functional/ftr_provider_context';
|
|
|
|
import expect from '@kbn/expect';
|
|
|
|
|
|
|
|
export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|
|
|
const dashboardExpect = getService('dashboardExpect');
|
|
|
|
const testSubjects = getService('testSubjects');
|
|
|
|
const listingTable = getService('listingTable');
|
|
|
|
|
|
|
|
const PageObjects = getPageObjects([
|
|
|
|
'common',
|
|
|
|
'dashboard',
|
|
|
|
'header',
|
|
|
|
'visualize',
|
|
|
|
'visEditor',
|
|
|
|
'discover',
|
|
|
|
'timePicker',
|
|
|
|
'timeToVisualize',
|
|
|
|
]);
|
|
|
|
|
|
|
|
describe('Add to Dashboard', function describeIndexTests() {
|
2021-05-13 22:32:58 +02:00
|
|
|
before(async () => {
|
|
|
|
await PageObjects.visualize.initTests();
|
|
|
|
});
|
2021-03-18 18:40:02 +01:00
|
|
|
it('adding a new metric to a new dashboard by value', async function () {
|
2021-02-10 19:48:32 +01:00
|
|
|
await PageObjects.visualize.navigateToNewAggBasedVisualization();
|
|
|
|
await PageObjects.visualize.clickMetric();
|
|
|
|
await PageObjects.visualize.clickNewSearch();
|
|
|
|
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('My New Vis 1', {
|
|
|
|
addToDashboard: 'new',
|
2021-03-18 18:40:02 +01:00
|
|
|
saveToLibrary: false,
|
2021-02-10 19:48:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
|
|
await dashboardExpect.metricValuesExist(['14,004']);
|
|
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
|
|
expect(panelCount).to.eql(1);
|
|
|
|
|
2021-03-18 18:40:02 +01:00
|
|
|
const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists('My New Vis 1');
|
|
|
|
expect(isLinked).to.be(false);
|
|
|
|
|
|
|
|
await PageObjects.timeToVisualize.resetNewDashboard();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('adding a new metric to a new dashboard by reference', async function () {
|
|
|
|
await PageObjects.visualize.navigateToNewAggBasedVisualization();
|
|
|
|
await PageObjects.visualize.clickMetric();
|
|
|
|
await PageObjects.visualize.clickNewSearch();
|
|
|
|
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('My Saved New Vis 1', {
|
|
|
|
addToDashboard: 'new',
|
|
|
|
saveToLibrary: true,
|
|
|
|
});
|
|
|
|
|
|
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
|
|
await dashboardExpect.metricValuesExist(['14,004']);
|
|
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
|
|
expect(panelCount).to.eql(1);
|
|
|
|
|
|
|
|
const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists(
|
|
|
|
'My Saved New Vis 1'
|
|
|
|
);
|
|
|
|
expect(isLinked).to.be(true);
|
|
|
|
|
2021-02-10 19:48:32 +01:00
|
|
|
await PageObjects.timeToVisualize.resetNewDashboard();
|
|
|
|
});
|
|
|
|
|
2021-03-18 18:40:02 +01:00
|
|
|
it('adding a existing metric to a new dashboard by value', async function () {
|
2021-02-10 19:48:32 +01:00
|
|
|
await PageObjects.visualize.navigateToNewAggBasedVisualization();
|
|
|
|
await PageObjects.visualize.clickMetric();
|
|
|
|
await PageObjects.visualize.clickNewSearch();
|
|
|
|
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
// Save this new viz to library
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('My New Vis 1', {
|
|
|
|
addToDashboard: null,
|
2021-03-18 18:40:02 +01:00
|
|
|
saveToLibrary: true,
|
2021-02-10 19:48:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
// All the options should be disabled
|
|
|
|
await PageObjects.timeToVisualize.ensureDashboardOptionsAreDisabled();
|
|
|
|
|
|
|
|
// Save a new copy of this viz to a new dashboard
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('My New Vis 1 Copy', {
|
|
|
|
addToDashboard: 'new',
|
|
|
|
saveAsNew: true,
|
2021-03-18 18:40:02 +01:00
|
|
|
saveToLibrary: false,
|
|
|
|
});
|
|
|
|
|
|
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
|
|
await dashboardExpect.metricValuesExist(['14,004']);
|
|
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
|
|
expect(panelCount).to.eql(1);
|
|
|
|
|
|
|
|
const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists(
|
|
|
|
'My New Vis 1 Copy'
|
|
|
|
);
|
|
|
|
expect(isLinked).to.be(false);
|
|
|
|
|
|
|
|
await PageObjects.timeToVisualize.resetNewDashboard();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('adding a existing metric to a new dashboard by reference', async function () {
|
|
|
|
await PageObjects.visualize.navigateToNewAggBasedVisualization();
|
|
|
|
await PageObjects.visualize.clickMetric();
|
|
|
|
await PageObjects.visualize.clickNewSearch();
|
|
|
|
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
// Save this new viz to library
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('Another New Vis 1', {
|
|
|
|
addToDashboard: null,
|
|
|
|
saveToLibrary: true,
|
|
|
|
});
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
// All the options should be disabled
|
|
|
|
await PageObjects.timeToVisualize.ensureDashboardOptionsAreDisabled();
|
|
|
|
|
|
|
|
// Save a new copy of this viz to a new dashboard
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('Another New Vis 1 Copy', {
|
|
|
|
addToDashboard: 'new',
|
|
|
|
saveAsNew: true,
|
|
|
|
saveToLibrary: true,
|
2021-02-10 19:48:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
|
|
await dashboardExpect.metricValuesExist(['14,004']);
|
|
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
|
|
expect(panelCount).to.eql(1);
|
|
|
|
|
2021-03-18 18:40:02 +01:00
|
|
|
const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists(
|
|
|
|
'Another New Vis 1 Copy'
|
|
|
|
);
|
|
|
|
expect(isLinked).to.be(true);
|
|
|
|
|
2021-02-10 19:48:32 +01:00
|
|
|
await PageObjects.timeToVisualize.resetNewDashboard();
|
|
|
|
});
|
|
|
|
|
2021-03-18 18:40:02 +01:00
|
|
|
it('adding a new metric to an existing dashboard by value', async function () {
|
|
|
|
await PageObjects.common.navigateToApp('dashboard');
|
|
|
|
|
|
|
|
await PageObjects.dashboard.clickNewDashboard();
|
|
|
|
await PageObjects.dashboard.addVisualizations(['Visualization AreaChart']);
|
|
|
|
await PageObjects.dashboard.saveDashboard('My Excellent Dashboard');
|
|
|
|
await PageObjects.dashboard.gotoDashboardLandingPage();
|
|
|
|
await listingTable.searchAndExpectItemsCount('dashboard', 'My Excellent Dashboard', 1);
|
|
|
|
|
|
|
|
await PageObjects.visualize.navigateToNewAggBasedVisualization();
|
|
|
|
await PageObjects.visualize.clickMetric();
|
|
|
|
await PageObjects.visualize.clickNewSearch();
|
|
|
|
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('My New Vis 2', {
|
|
|
|
addToDashboard: 'existing',
|
|
|
|
dashboardId: 'My Excellent Dashboard',
|
|
|
|
saveToLibrary: false,
|
|
|
|
});
|
|
|
|
|
|
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
|
|
await dashboardExpect.metricValuesExist(['14,004']);
|
|
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
|
|
expect(panelCount).to.eql(2);
|
|
|
|
|
|
|
|
const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists('My New Vis 2');
|
|
|
|
expect(isLinked).to.be(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('adding a new metric to an existing dashboard by reference', async function () {
|
2021-02-10 19:48:32 +01:00
|
|
|
await PageObjects.common.navigateToApp('dashboard');
|
|
|
|
|
|
|
|
await PageObjects.dashboard.clickNewDashboard();
|
|
|
|
await PageObjects.dashboard.addVisualizations(['Visualization AreaChart']);
|
|
|
|
await PageObjects.dashboard.saveDashboard('My Wonderful Dashboard');
|
|
|
|
await PageObjects.dashboard.gotoDashboardLandingPage();
|
|
|
|
await listingTable.searchAndExpectItemsCount('dashboard', 'My Wonderful Dashboard', 1);
|
|
|
|
|
|
|
|
await PageObjects.visualize.navigateToNewAggBasedVisualization();
|
|
|
|
await PageObjects.visualize.clickMetric();
|
|
|
|
await PageObjects.visualize.clickNewSearch();
|
|
|
|
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
2021-03-18 18:40:02 +01:00
|
|
|
await PageObjects.timeToVisualize.saveFromModal('My Saved New Vis 2', {
|
2021-02-10 19:48:32 +01:00
|
|
|
addToDashboard: 'existing',
|
|
|
|
dashboardId: 'My Wonderful Dashboard',
|
2021-03-18 18:40:02 +01:00
|
|
|
saveToLibrary: true,
|
2021-02-10 19:48:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
|
|
await dashboardExpect.metricValuesExist(['14,004']);
|
|
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
|
|
expect(panelCount).to.eql(2);
|
2021-03-18 18:40:02 +01:00
|
|
|
|
|
|
|
const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists(
|
|
|
|
'My Saved New Vis 2'
|
|
|
|
);
|
|
|
|
expect(isLinked).to.be(true);
|
2021-02-10 19:48:32 +01:00
|
|
|
});
|
|
|
|
|
2021-03-18 18:40:02 +01:00
|
|
|
it('adding a existing metric to an existing dashboard by value', async function () {
|
2021-02-10 19:48:32 +01:00
|
|
|
await PageObjects.common.navigateToApp('dashboard');
|
|
|
|
|
|
|
|
await PageObjects.dashboard.clickNewDashboard();
|
|
|
|
await PageObjects.dashboard.addVisualizations(['Visualization AreaChart']);
|
|
|
|
await PageObjects.dashboard.saveDashboard('My Very Cool Dashboard');
|
|
|
|
await PageObjects.dashboard.gotoDashboardLandingPage();
|
|
|
|
await listingTable.searchAndExpectItemsCount('dashboard', 'My Very Cool Dashboard', 1);
|
|
|
|
|
|
|
|
await PageObjects.visualize.navigateToNewAggBasedVisualization();
|
|
|
|
await PageObjects.visualize.clickMetric();
|
|
|
|
await PageObjects.visualize.clickNewSearch();
|
|
|
|
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
// Save this new viz to library
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('My New Vis 2', {
|
|
|
|
addToDashboard: null,
|
2021-03-18 18:40:02 +01:00
|
|
|
saveToLibrary: true,
|
2021-02-10 19:48:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
// All the options should be disabled
|
|
|
|
await PageObjects.timeToVisualize.ensureDashboardOptionsAreDisabled();
|
|
|
|
|
|
|
|
// Save a new copy of this viz to an existing dashboard
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('My New Vis 2 Copy', {
|
|
|
|
addToDashboard: 'existing',
|
|
|
|
dashboardId: 'My Very Cool Dashboard',
|
|
|
|
saveAsNew: true,
|
2021-03-18 18:40:02 +01:00
|
|
|
saveToLibrary: false,
|
|
|
|
});
|
|
|
|
|
|
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
|
|
await dashboardExpect.metricValuesExist(['14,004']);
|
|
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
|
|
expect(panelCount).to.eql(2);
|
|
|
|
|
|
|
|
const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists(
|
|
|
|
'My New Vis 2 Copy'
|
|
|
|
);
|
|
|
|
expect(isLinked).to.be(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('adding a existing metric to an existing dashboard by reference', async function () {
|
|
|
|
await PageObjects.common.navigateToApp('dashboard');
|
|
|
|
|
|
|
|
await PageObjects.dashboard.clickNewDashboard();
|
|
|
|
await PageObjects.dashboard.addVisualizations(['Visualization AreaChart']);
|
|
|
|
await PageObjects.dashboard.saveDashboard('My Very Neat Dashboard');
|
|
|
|
await PageObjects.dashboard.gotoDashboardLandingPage();
|
|
|
|
await listingTable.searchAndExpectItemsCount('dashboard', 'My Very Neat Dashboard', 1);
|
|
|
|
|
|
|
|
await PageObjects.visualize.navigateToNewAggBasedVisualization();
|
|
|
|
await PageObjects.visualize.clickMetric();
|
|
|
|
await PageObjects.visualize.clickNewSearch();
|
|
|
|
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
// Save this new viz to library
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('Neat Saved Vis 2', {
|
|
|
|
addToDashboard: null,
|
|
|
|
saveToLibrary: true,
|
|
|
|
});
|
|
|
|
|
|
|
|
await testSubjects.click('visualizeSaveButton');
|
|
|
|
|
|
|
|
// All the options should be disabled
|
|
|
|
await PageObjects.timeToVisualize.ensureDashboardOptionsAreDisabled();
|
|
|
|
|
|
|
|
// Save a new copy of this viz to an existing dashboard
|
|
|
|
await PageObjects.timeToVisualize.saveFromModal('Neat Saved Vis 2 Copy', {
|
|
|
|
addToDashboard: 'existing',
|
|
|
|
dashboardId: 'My Very Neat Dashboard',
|
|
|
|
saveAsNew: true,
|
|
|
|
saveToLibrary: true,
|
2021-02-10 19:48:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
await PageObjects.dashboard.waitForRenderComplete();
|
|
|
|
await dashboardExpect.metricValuesExist(['14,004']);
|
|
|
|
const panelCount = await PageObjects.dashboard.getPanelCount();
|
|
|
|
expect(panelCount).to.eql(2);
|
2021-03-18 18:40:02 +01:00
|
|
|
|
|
|
|
const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists(
|
|
|
|
'Neat Saved Vis 2 Copy'
|
|
|
|
);
|
|
|
|
expect(isLinked).to.be(true);
|
2021-02-10 19:48:32 +01:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|