[Pie] Run all functional tests for the new implementation (#131700)

* [Pie] Run all functional tests for the new implementation

* Fix CI

* Fix tests

* More fixes

* More test foxes

* Fix a11y tests

* Further fies

* Fix

* Further fixes

* Final fixes

* Fix more pie related tests

* Fixes more fixes

* Fix dashboard tests

* Fix dashboard filtering test

* Fix the reporting tests

* BWC tests
This commit is contained in:
Stratoula Kalafateli 2022-05-11 17:31:15 +03:00 committed by GitHub
parent ae944f485f
commit c05f891793
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 174 additions and 89 deletions

View file

@ -8,7 +8,7 @@
import React, { memo, useMemo } from 'react';
import { i18n } from '@kbn/i18n';
import { htmlIdGenerator, EuiButtonIcon, useEuiTheme } from '@elastic/eui';
import { EuiButtonIcon, useEuiTheme } from '@elastic/eui';
import { Position } from '@elastic/charts';
import { css } from '@emotion/react';
@ -19,7 +19,6 @@ export interface LegendToggleProps {
}
const LegendToggleComponent = ({ onClick, showLegend, legendPosition }: LegendToggleProps) => {
const legendId = useMemo(() => htmlIdGenerator()('legend'), []);
const { euiTheme } = useEuiTheme();
const baseStyles = useMemo(
@ -65,7 +64,6 @@ const LegendToggleComponent = ({ onClick, showLegend, legendPosition }: LegendTo
defaultMessage: 'Toggle legend',
})}
aria-expanded={showLegend}
aria-controls={legendId}
isSelected={showLegend}
data-test-subj="vislibToggleLegend"
title={i18n.translate('charts.legend.toggleLegendButtonTitle', {

View file

@ -116,9 +116,7 @@ export default function ({ getService, getPageObjects }: PluginFunctionalProvide
});
it('pie charts', async () => {
if (await PageObjects.visChart.isNewChartsLibraryEnabled()) {
await elasticChart.setNewChartUiDebugFlag();
}
await elasticChart.setNewChartUiDebugFlag();
await pieChart.expectPieSliceCount(5);
});

View file

@ -38,12 +38,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('causes panels to reload when refresh is clicked', async () => {
await esArchiver.unload('test/functional/fixtures/es_archiver/dashboard/current/data');
await queryBar.clickQuerySubmitButton();
await retry.tryForTime(5000, async () => {
const headers = await PageObjects.discover.getColumnHeaders();
expect(headers.length).to.be(0);
await pieChart.expectPieSliceCount(0);
await pieChart.expectEmptyPieChart();
});
});
});

View file

@ -39,7 +39,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
let visNames: string[] = [];
const expectAllDataRenders = async () => {
await pieChart.expectPieSliceCount(16);
await pieChart.expectSliceCountForAllPies(16);
await dashboardExpect.metricValuesExist(['7,544']);
await dashboardExpect.seriesElementCount(14);
const tsvbGuageExists = await find.existsByCssSelector('.tvbVisHalfGauge');
@ -73,7 +73,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
};
const expectNoDataRenders = async () => {
await pieChart.expectPieSliceCount(0);
await pieChart.expectEmptyPieChart();
await dashboardExpect.seriesElementCount(0);
await dashboardExpect.dataTableNoResult();
await dashboardExpect.savedSearchNoResult();
@ -112,6 +112,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.common.navigateToApp('dashboard');
await PageObjects.dashboard.preserveCrossAppState();
await PageObjects.dashboard.clickNewDashboard();
await elasticChart.setNewChartUiDebugFlag(true);
const fromTime = 'Jan 1, 2018 @ 00:00:00.000';
const toTime = 'Apr 13, 2018 @ 00:00:00.000';
@ -160,6 +161,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('initial render test', async () => {
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.dashboard.waitForRenderComplete();
await elasticChart.setNewChartUiDebugFlag();
await expectAllDataRenders();
});
@ -178,9 +180,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const alert = await browser.getAlert();
await alert?.accept();
await elasticChart.setNewChartUiDebugFlag(true);
await PageObjects.header.waitUntilLoadingHasFinished();
await elasticChart.setNewChartUiDebugFlag();
await PageObjects.dashboard.waitForRenderComplete();
await expectAllDataRenders();
});

View file

@ -25,6 +25,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const listingTable = getService('listingTable');
const kibanaServer = getService('kibanaServer');
const security = getService('security');
const elasticChart = getService('elasticChart');
let kibanaLegacyBaseUrl: string;
let kibanaVisualizeBaseUrl: string;
@ -63,6 +64,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const url = `${kibanaLegacyBaseUrl}#/dashboard/${testDashboardId}`;
await browser.get(url, true);
await PageObjects.header.waitUntilLoadingHasFinished();
await elasticChart.setNewChartUiDebugFlag(true);
await PageObjects.timePicker.setDefaultDataRange();
await PageObjects.dashboard.waitForRenderComplete();
@ -72,6 +74,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('redirects from legacy hash in wrong app', async () => {
const url = `${kibanaVisualizeBaseUrl}#/dashboard/${testDashboardId}`;
await browser.get(url, true);
await elasticChart.setNewChartUiDebugFlag(true);
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.timePicker.setDefaultDataRange();
@ -111,6 +114,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dashboardAddPanel.addVisualization('legacy url markdown');
(await find.byLinkText('abc')).click();
await PageObjects.header.waitUntilLoadingHasFinished();
await elasticChart.setNewChartUiDebugFlag(true);
await PageObjects.timePicker.setDefaultDataRange();
await PageObjects.dashboard.waitForRenderComplete();

View file

@ -17,8 +17,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const testSubjects = getService('testSubjects');
const filterBar = getService('filterBar');
const pieChart = getService('pieChart');
const elasticChart = getService('elasticChart');
const kibanaServer = getService('kibanaServer');
const browser = getService('browser');
const queryBar = getService('queryBar');
const security = getService('security');
const PageObjects = getPageObjects([
'common',
@ -109,6 +111,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.dashboard.gotoDashboardLandingPage();
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.timePicker.setDefaultDataRange();
await elasticChart.setNewChartUiDebugFlag(true);
});
it('are not selected by default', async function () {
@ -119,7 +122,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('are added when a pie chart slice is clicked', async function () {
await dashboardAddPanel.addVisualization('Rendering Test: pie');
await PageObjects.dashboard.waitForRenderComplete();
await pieChart.filterOnPieSlice('4,886');
await pieChart.filterOnPieSlice('4886');
const filterCount = await filterBar.getFilterCount();
expect(filterCount).to.equal(1);
@ -129,6 +132,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('are preserved after saving a dashboard', async () => {
await PageObjects.dashboard.saveDashboard('with filters');
await PageObjects.header.waitUntilLoadingHasFinished();
await elasticChart.setNewChartUiDebugFlag(true);
const filterCount = await filterBar.getFilterCount();
expect(filterCount).to.equal(1);
@ -140,6 +144,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.dashboard.gotoDashboardLandingPage();
await PageObjects.dashboard.loadSavedDashboard('with filters');
await PageObjects.header.waitUntilLoadingHasFinished();
await elasticChart.setNewChartUiDebugFlag(true);
await queryBar.submitQuery();
const filterCount = await filterBar.getFilterCount();
expect(filterCount).to.equal(1);
@ -152,6 +158,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await browser.goForward();
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.dashboard.waitForRenderComplete();
await elasticChart.setNewChartUiDebugFlag(true);
await queryBar.submitQuery();
await pieChart.expectPieSliceCount(1);
});

View file

@ -18,6 +18,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const dashboardExpect = getService('dashboardExpect');
const pieChart = getService('pieChart');
const queryBar = getService('queryBar');
const elasticChart = getService('elasticChart');
const dashboardAddPanel = getService('dashboardAddPanel');
const renderable = getService('renderable');
const testSubjects = getService('testSubjects');
@ -47,6 +48,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await queryBar.clickQuerySubmitButton();
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.dashboard.waitForRenderComplete();
await elasticChart.setNewChartUiDebugFlag(true);
};
before(async () => {
@ -85,7 +87,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
it('filters on pie charts', async () => {
await pieChart.expectPieSliceCount(0);
await pieChart.expectEmptyPieChart();
});
it('area, bar and heatmap charts filtered', async () => {
@ -150,7 +152,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
it('filters on pie charts', async () => {
await pieChart.expectPieSliceCount(0);
await pieChart.expectEmptyPieChart();
});
it('area, bar and heatmap charts filtered', async () => {
@ -253,6 +255,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
describe('nested filtering', () => {
before(async () => {
await PageObjects.dashboard.gotoDashboardLandingPage();
await elasticChart.setNewChartUiDebugFlag(true);
});
it('visualization saved with a query filters data', async () => {
@ -323,10 +326,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dashboardAddPanel.addVisualization(
'Filter Test: animals: linked to search with filter'
);
await pieChart.expectPieSliceCount(7);
await elasticChart.setNewChartUiDebugFlag(true);
await pieChart.expectSliceCountForAllPies(7);
});
it('Pie chart linked to saved search filters shows no data with conflicting dashboard query', async () => {
await elasticChart.setNewChartUiDebugFlag(true);
await queryBar.setQuery('weightLbs<40');
await queryBar.submitQuery();
await PageObjects.dashboard.waitForRenderComplete();

View file

@ -14,6 +14,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const PageObjects = getPageObjects(['dashboard', 'header']);
const dashboardExpect = getService('dashboardExpect');
const pieChart = getService('pieChart');
const elasticChart = getService('elasticChart');
const browser = getService('browser');
const log = getService('log');
const queryBar = getService('queryBar');
@ -41,6 +42,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
`legendOpen:!t))),` +
`viewMode:edit)`;
const enableNewChartLibraryDebug = async () => {
await elasticChart.setNewChartUiDebugFlag();
await queryBar.submitQuery();
};
describe('bwc shared urls', function describeIndexTests() {
before(async function () {
await PageObjects.dashboard.initTests();
@ -75,11 +81,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug(`Navigating to ${url}`);
await browser.get(url, true);
await PageObjects.header.waitUntilLoadingHasFinished();
await elasticChart.setNewChartUiDebugFlag(true);
const query = await queryBar.getQueryString();
expect(query).to.equal('memory:>220000');
await pieChart.expectPieSliceCount(0);
await pieChart.expectEmptyPieChart();
await dashboardExpect.panelCount(2);
await PageObjects.dashboard.waitForRenderComplete();
});
@ -92,8 +99,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const url = `${kibanaLegacyBaseUrl}#/dashboard?${urlQuery}`;
log.debug(`Navigating to ${url}`);
await browser.get(url, true);
enableNewChartLibraryDebug();
await PageObjects.header.waitUntilLoadingHasFinished();
const query = await queryBar.getQueryString();
expect(query).to.equal('memory:>220000');
@ -113,6 +120,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug(`Navigating to ${url}`);
await browser.get(url, true);
await PageObjects.header.waitUntilLoadingHasFinished();
enableNewChartLibraryDebug();
const query = await queryBar.getQueryString();
expect(query).to.equal('memory:>220000');
@ -146,8 +154,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug(`Navigating to ${url}`);
await browser.get(url, true);
await elasticChart.setNewChartUiDebugFlag(true);
await PageObjects.header.waitUntilLoadingHasFinished();
await dashboardExpect.selectedLegendColorCount('#000000', 5);
});
@ -160,6 +168,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const url = `${kibanaLegacyBaseUrl}#/dashboard?${urlQuery}`;
log.debug(`Navigating to ${url}`);
await browser.get(url);
await elasticChart.setNewChartUiDebugFlag(true);
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.dashboard.waitForRenderComplete();
await dashboardExpect.selectedLegendColorCount('#F9D9F9', 5);
@ -169,6 +178,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const newId = await PageObjects.dashboard.getDashboardIdFromCurrentUrl();
expect(newId).to.be.equal(oldId);
await PageObjects.dashboard.waitForRenderComplete();
await elasticChart.setNewChartUiDebugFlag(true);
await queryBar.submitQuery();
await dashboardExpect.selectedLegendColorCount('#000000', 5);
});
});

View file

@ -42,7 +42,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
describe('dashboard state', function describeIndexTests() {
// Used to track flag before and after reset
let isNewChartsLibraryEnabled = false;
let isNewChartsLibraryEnabled = true;
before(async function () {
isNewChartsLibraryEnabled = await PageObjects.visChart.isNewChartsLibraryEnabled();
@ -50,9 +50,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.dashboard.preserveCrossAppState();
await browser.setLocalStorageItem('data.newDataViewMenu', 'true');
if (isNewChartsLibraryEnabled) {
if (!isNewChartsLibraryEnabled) {
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': false,
'visualization:visualize:legacyPieChartsLibrary': true,
});
}
await browser.refresh();

View file

@ -14,6 +14,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const dashboardExpect = getService('dashboardExpect');
const pieChart = getService('pieChart');
const elasticChart = getService('elasticChart');
const dashboardVisualizations = getService('dashboardVisualizations');
const PageObjects = getPageObjects([
'dashboard',
@ -31,6 +32,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
before(async function () {
await PageObjects.dashboard.initTests();
await PageObjects.dashboard.preserveCrossAppState();
await elasticChart.setNewChartUiDebugFlag(true);
});
after(async () => {
@ -43,7 +45,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('Visualization updated when time picker changes', async () => {
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.dashboard.addVisualizations([PIE_CHART_VIS_NAME]);
await pieChart.expectPieSliceCount(0);
await pieChart.expectEmptyPieChart();
await PageObjects.timePicker.setHistoricalDataRange();
await pieChart.expectPieSliceCount(10);
@ -124,6 +126,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'2015-09-19 06:31:44.000',
'2015-09-23 18:31:44.000'
);
await elasticChart.setNewChartUiDebugFlag(true);
await pieChart.expectPieSliceCount(10);
});
});

View file

@ -25,11 +25,11 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
describe('dashboard app - group 5', function () {
// TODO: Remove when vislib is removed
// https://github.com/elastic/kibana/issues/56143
describe('new charts library', function () {
describe('old charts library', function () {
before(async () => {
await loadLogstash();
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': false,
'visualization:visualize:legacyPieChartsLibrary': true,
});
await browser.refresh();
});
@ -37,7 +37,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
after(async () => {
await unloadLogstash();
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': true,
'visualization:visualize:legacyPieChartsLibrary': false,
});
await browser.refresh();
});

View file

@ -14,6 +14,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const retry = getService('retry');
const queryBar = getService('queryBar');
const pieChart = getService('pieChart');
const elasticChart = getService('elasticChart');
const filterBar = getService('filterBar');
const testSubjects = getService('testSubjects');
const dashboardAddPanel = getService('dashboardAddPanel');
@ -32,6 +33,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dashboard.gotoDashboardLandingPage();
await dashboard.clickNewDashboard();
await timePicker.setDefaultDataRange();
await elasticChart.setNewChartUiDebugFlag();
});
describe('Options List Control Editor selects relevant data views', async () => {

View file

@ -39,7 +39,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
// order they are added.
let aggIndex = 1;
// Used to track flag before and after reset
let isNewChartsLibraryEnabled = false;
let isNewChartsLibraryEnabled = true;
before(async function () {
log.debug(
@ -56,9 +56,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'test/functional/fixtures/es_archiver/getting_started/shakespeare'
);
if (isNewChartsLibraryEnabled) {
if (!isNewChartsLibraryEnabled) {
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': false,
'visualization:visualize:legacyPieChartsLibrary': true,
});
await browser.refresh();
}

View file

@ -18,25 +18,25 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
});
// TODO: Remove when vislib is removed
describe('new charts library', function () {
describe('old charts library', function () {
before(async () => {
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': false,
});
await browser.refresh();
});
after(async () => {
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': true,
});
await browser.refresh();
});
after(async () => {
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': false,
});
await browser.refresh();
});
loadTestFile(require.resolve('./_shakespeare'));
});
describe('', () => {
describe('new charts library', () => {
loadTestFile(require.resolve('./_shakespeare'));
});
});

View file

@ -50,7 +50,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug('setNumericInterval 4000');
await PageObjects.visEditor.setInterval('40000', { type: 'numeric' });
log.debug('clickGo');
await PageObjects.visEditor.clickGo();
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
});
it('should save and load', async function () {
@ -65,7 +65,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
it('should show 10 slices in pie chart', async function () {
pieChart.expectPieSliceCount(10);
pieChart.expectPieSliceCount(10, isNewChartsLibraryEnabled);
});
it('should show correct data', async function () {
@ -105,8 +105,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.visEditor.toggleOtherBucket(2);
await PageObjects.visEditor.toggleMissingBucket(2);
log.debug('clickGo');
await PageObjects.visEditor.clickGo();
await pieChart.expectPieChartLabels(expectedTableData);
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
await pieChart.expectPieChartLabels(expectedTableData, isNewChartsLibraryEnabled);
});
it('should apply correct filter on other bucket', async () => {
@ -114,7 +114,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await pieChart.filterOnPieSlice('Other');
await PageObjects.visChart.waitForVisualization();
await pieChart.expectPieChartLabels(expectedTableData);
await pieChart.expectPieChartLabels(expectedTableData, isNewChartsLibraryEnabled);
await filterBar.removeFilter('machine.os.raw');
await PageObjects.visChart.waitForVisualization();
});
@ -124,7 +124,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.visChart.filterLegend('Other');
await PageObjects.visChart.waitForVisualization();
await pieChart.expectPieChartLabels(expectedTableData);
await pieChart.expectPieChartLabels(expectedTableData, isNewChartsLibraryEnabled);
await filterBar.removeFilter('machine.os.raw');
await PageObjects.visChart.waitForVisualization();
});
@ -183,8 +183,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.visEditor.toggleOtherBucket(3);
await PageObjects.visEditor.toggleMissingBucket(3);
log.debug('clickGo');
await PageObjects.visEditor.clickGo();
await pieChart.expectPieChartLabels(expectedTableData);
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
await pieChart.expectPieChartLabels(expectedTableData, isNewChartsLibraryEnabled);
});
});
@ -201,9 +201,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.visEditor.selectAggregation('Terms');
await PageObjects.visEditor.selectField('machine.os.raw');
await PageObjects.visEditor.toggleDisabledAgg(2);
await PageObjects.visEditor.clickGo();
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
await pieChart.expectPieChartLabels(expectedTableData);
await pieChart.expectPieChartLabels(expectedTableData, isNewChartsLibraryEnabled);
});
it('should correctly save disabled agg', async () => {
@ -213,12 +213,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.visChart.waitForRenderingCount();
const expectedTableData = ['ios', 'osx', 'win 7', 'win 8', 'win xp'];
await pieChart.expectPieChartLabels(expectedTableData);
await pieChart.expectPieChartLabels(expectedTableData, isNewChartsLibraryEnabled);
});
it('should show correct result when agg is re-enabled', async () => {
await PageObjects.visEditor.toggleDisabledAgg(2);
await PageObjects.visEditor.clickGo();
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
const expectedTableData = [
'0',
@ -283,7 +283,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'osx',
].sort();
await pieChart.expectPieChartLabels(expectedTableData);
await pieChart.expectPieChartLabels(expectedTableData, isNewChartsLibraryEnabled);
});
});
@ -304,7 +304,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.visEditor.addNewFilterAggregation();
log.debug('Set the 2nd filter value');
await PageObjects.visEditor.setFilterAggregationValue('geo.dest:"CN"', 1);
await PageObjects.visEditor.clickGo();
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
const emptyFromTime = 'Sep 19, 2016 @ 06:31:44.000';
const emptyToTime = 'Sep 23, 2016 @ 18:31:44.000';
log.debug(
@ -346,7 +346,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.visEditor.clickBucket('Split slices');
await PageObjects.visEditor.selectAggregation('Terms');
await PageObjects.visEditor.selectField('geo.dest');
await PageObjects.visEditor.clickGo();
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
});
it('should show correct chart', async () => {
@ -435,16 +435,16 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'360,000',
'CN',
].sort();
if (await PageObjects.visChart.isNewLibraryChart('partitionVisChart')) {
if (isNewChartsLibraryEnabled) {
await PageObjects.visEditor.clickOptionsTab();
await PageObjects.visEditor.togglePieLegend();
await PageObjects.visEditor.togglePieNestedLegend();
await PageObjects.visEditor.clickDataTab();
await PageObjects.visEditor.clickGo();
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
}
await PageObjects.visChart.filterLegend('CN');
await PageObjects.visChart.waitForVisualization();
await pieChart.expectPieChartLabels(expectedTableData);
await pieChart.expectPieChartLabels(expectedTableData, isNewChartsLibraryEnabled);
await filterBar.removeFilter('geo.dest');
await PageObjects.visChart.waitForVisualization();
});
@ -474,7 +474,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.visEditor.selectAggregation('Filters');
log.debug('Set the 1st filter value of the aggregation id 3');
await PageObjects.visEditor.setFilterAggregationValue('geo.dest:"UX"', 0, 3);
await PageObjects.visEditor.clickGo();
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
const legends = await PageObjects.visChart.getLegendEntries();
const expectedLegends = ['geo.dest:"US"', 'geo.dest:"UX"'];
expect(legends).to.eql(expectedLegends);
@ -496,7 +496,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.visEditor.clickBucket('Split slices');
await PageObjects.visEditor.selectAggregation('Terms');
await PageObjects.visEditor.selectField('geo.src');
await PageObjects.visEditor.clickGo();
await PageObjects.visEditor.clickGo(isNewChartsLibraryEnabled);
});
it('shows correct split chart', async () => {

View file

@ -12,6 +12,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
const browser = getService('browser');
const log = getService('log');
const esArchiver = getService('esArchiver');
const kibanaServer = getService('kibanaServer');
describe('visualize app', () => {
before(async () => {
@ -21,13 +22,25 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/long_window_logstash');
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': true,
});
await browser.refresh();
});
after(async () => {
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': false,
});
await browser.refresh();
});
loadTestFile(require.resolve('./_pie_chart'));
loadTestFile(require.resolve('./_shared_item'));
loadTestFile(require.resolve('./_lab_mode'));
loadTestFile(require.resolve('./_linked_saved_searches'));
loadTestFile(require.resolve('./_visualize_listing'));
loadTestFile(require.resolve('./_add_to_dashboard.ts'));
loadTestFile(require.resolve('./_pie_chart'));
});
}

View file

@ -27,7 +27,6 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
before(async () => {
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': false,
'visualization:visualize:legacyHeatmapChartsLibrary': false,
});
await browser.refresh();
@ -35,7 +34,6 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
after(async () => {
await kibanaServer.uiSettings.update({
'visualization:visualize:legacyPieChartsLibrary': true,
'visualization:visualize:legacyHeatmapChartsLibrary': true,
});
await browser.refresh();

View file

@ -39,7 +39,6 @@ export default async function ({ readConfigFile }) {
defaults: {
'accessibility:disableAnimations': true,
'dateFormat:tz': 'UTC',
'visualization:visualize:legacyPieChartsLibrary': true,
'visualization:useLegacyTimeAxis': true,
},
},

View file

@ -32,6 +32,10 @@ export class VisualizeChartPageObject extends FtrService {
return await this.elasticChart.getChartDebugData(chartSelector);
}
public async getAllESChartsDebugDataByTestSubj(chartSelector: string) {
return await this.elasticChart.getAllChartsDebugDataByTestSubj(chartSelector);
}
/**
* Is new charts library advanced setting enabled
*/

View file

@ -19,6 +19,7 @@ export class DashboardExpectService extends FtrService {
private readonly dashboard = this.ctx.getPageObject('dashboard');
private readonly visChart = this.ctx.getPageObject('visChart');
private readonly pieChart = this.ctx.getService('pieChart');
private readonly tagCloud = this.ctx.getPageObject('tagCloud');
private readonly findTimeout = 2500;
@ -39,11 +40,11 @@ export class DashboardExpectService extends FtrService {
async selectedLegendColorCount(color: string, expectedCount: number) {
this.log.debug(`DashboardExpect.selectedLegendColorCount(${color}, ${expectedCount})`);
await this.retry.try(async () => {
const selectedLegendColor = await this.testSubjects.findAll(
`legendSelectedColor-${color}`,
this.findTimeout
);
expect(selectedLegendColor.length).to.be(expectedCount);
const slicesColors = await this.pieChart.getAllPieSlicesColors();
const selectedColors = slicesColors.filter((sliceColor) => {
return sliceColor === color;
});
expect(selectedColors.length).to.be(expectedCount);
});
}

View file

@ -94,6 +94,11 @@ export class ElasticChartService extends FtrService {
}
}
public async getAllChartsDebugDataByTestSubj(dataTestSubj: string): Promise<WebElementWrapper[]> {
const charts = await this.testSubjects.findAll(dataTestSubj);
return charts;
}
private async getAllCharts(timeout?: number) {
return await this.find.allByCssSelector('.echChart', timeout);
}

View file

@ -35,7 +35,7 @@ export class PieChartService extends FtrService {
if (name === 'Other') {
sliceLabel = '__other__';
}
const pieSlice = slices.find((slice) => slice.name === sliceLabel);
const pieSlice = slices.find((slice) => String(slice.name) === sliceLabel);
const pie = await this.testSubjects.find(partitionVisChartSelector);
if (pieSlice) {
const pieSize = await pie.getSize();
@ -101,6 +101,17 @@ export class PieChartService extends FtrService {
return await pieSlice.getAttribute('style');
}
async getAllPieSlicesColors() {
const slicesColors = [];
const slices =
(await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0]
?.partitions ?? [];
for (const slice of slices) {
slicesColors.push(slice.color);
}
return slicesColors;
}
async getAllPieSliceColor(name: string) {
this.log.debug(`VisualizePage.getAllPieSliceColor(${name})`);
if (await this.visChart.isNewLibraryChart(partitionVisChartSelector)) {
@ -142,8 +153,8 @@ export class PieChartService extends FtrService {
await this.inspector.expectTableData(expectedTableData);
}
async getPieChartLabels() {
if (await this.visChart.isNewLibraryChart(partitionVisChartSelector)) {
async getPieChartLabels(isNewLibrary: boolean = true) {
if (isNewLibrary) {
const slices =
(await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0]
?.partitions ?? [];
@ -167,9 +178,9 @@ export class PieChartService extends FtrService {
);
}
async getPieSliceCount() {
async getPieSliceCount(isNewLibrary: boolean = true) {
this.log.debug('PieChart.getPieSliceCount');
if (await this.visChart.isNewLibraryChart(partitionVisChartSelector)) {
if (isNewLibrary) {
const slices =
(await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0]
?.partitions ?? [];
@ -179,6 +190,24 @@ export class PieChartService extends FtrService {
return slices.length;
}
async getSliceCountForAllPies() {
let pieSlices = 0;
const charts =
(await this.visChart.getAllESChartsDebugDataByTestSubj(partitionVisChartSelector)) ?? [];
for (const chart of charts) {
const visContainer = await chart.findByCssSelector('.echChartStatus');
const debugDataString: string | undefined = await visContainer.getAttribute(
'data-ech-debug-state'
);
if (debugDataString) {
const parsedData = JSON.parse(debugDataString);
const partition = parsedData?.partition?.[0] ?? [];
pieSlices += partition.partitions.length;
}
}
return pieSlices;
}
async expectPieSliceCountEsCharts(expectedCount: number) {
const slices =
(await this.visChart.getEsChartDebugState(partitionVisChartSelector))?.partition?.[0]
@ -186,18 +215,30 @@ export class PieChartService extends FtrService {
expect(slices.length).to.be(expectedCount);
}
async expectPieSliceCount(expectedCount: number) {
async expectPieSliceCount(expectedCount: number, isNewLibrary: boolean = true) {
this.log.debug(`PieChart.expectPieSliceCount(${expectedCount})`);
await this.retry.try(async () => {
const slicesCount = await this.getPieSliceCount();
const slicesCount = await this.getPieSliceCount(isNewLibrary);
expect(slicesCount).to.be(expectedCount);
});
}
async expectPieChartLabels(expectedLabels: string[]) {
async expectSliceCountForAllPies(expectedCount: number) {
await this.retry.try(async () => {
const slicesCount = await this.getSliceCountForAllPies();
expect(slicesCount).to.be(expectedCount);
});
}
async expectEmptyPieChart() {
const noResult = await this.testSubjects.exists('partitionVisEmptyValues');
expect(noResult).to.be(true);
}
async expectPieChartLabels(expectedLabels: string[], isNewLibrary: boolean = true) {
this.log.debug(`PieChart.expectPieChartLabels(${expectedLabels.join(',')})`);
await this.retry.try(async () => {
const pieData = await this.getPieChartLabels();
const pieData = await this.getPieChartLabels(isNewLibrary);
expect(pieData.sort()).to.eql(expectedLabels);
});
}

View file

@ -41,6 +41,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await security.testUser.setRoles(['test_logstash_reader', 'global_dashboard_all']);
await PageObjects.common.navigateToApp('dashboard');
await PageObjects.dashboard.preserveCrossAppState();
await elasticChart.setNewChartUiDebugFlag();
});
after(async () => {
@ -141,7 +142,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const testDashboardDrilldown = async (drilldownAction: (text: string) => Promise<void>) => {
// trigger drilldown action by clicking on a pie and picking drilldown action by it's name
await pieChart.clickOnPieSlice('40,000');
await pieChart.clickOnPieSlice('40000');
await dashboardDrilldownPanelActions.expectMultipleActionsMenuOpened();
const href = await dashboardDrilldownPanelActions.getActionHrefByText(

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 MiB

After

Width:  |  Height:  |  Size: 7.5 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 752 KiB

After

Width:  |  Height:  |  Size: 832 KiB

Before After
Before After

View file

@ -17,9 +17,11 @@ import { FtrProviderContext } from '../../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const retry = getService('retry');
const pieChart = getService('pieChart');
const elasticChart = getService('elasticChart');
const esArchiver = getService('esArchiver');
const kibanaServer = getService('kibanaServer');
const testSubjects = getService('testSubjects');
const queryBar = getService('queryBar');
const { common, settings, savedObjects, dashboard, dashboardControls } = getPageObjects([
'common',
@ -95,7 +97,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('applies default selected options list options to dashboard', async () => {
// because 4 selections are made on the control, the pie chart should only show 4 slices.
expect(await pieChart.getPieSliceCount()).to.be(4);
await elasticChart.setNewChartUiDebugFlag();
await queryBar.submitQuery();
await pieChart.expectPieSliceCountEsCharts(4);
});
});
}

View file

@ -58,7 +58,6 @@ export default async function ({ readConfigFile }) {
defaults: {
'accessibility:disableAnimations': true,
'dateFormat:tz': 'UTC',
'visualization:visualize:legacyPieChartsLibrary': true,
},
},
// the apps section defines the urls that

View file

@ -3,8 +3,7 @@
"accessibility:disableAnimations": true,
"buildNum": 9007199254740991,
"dateFormat:tz": "UTC",
"defaultIndex": "rollup",
"visualization:visualize:legacyPieChartsLibrary": true
"defaultIndex": "rollup"
},
"coreMigrationVersion": "7.15.0",
"id": "7.15.0",

View file

@ -75,7 +75,6 @@ export default async function ({ readConfigFile }) {
defaults: {
'accessibility:disableAnimations': true,
'dateFormat:tz': 'UTC',
'visualization:visualize:legacyPieChartsLibrary': true,
},
},
// the apps section defines the urls that

View file

@ -15,7 +15,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
const renderable = getService('renderable');
const dashboardExpect = getService('dashboardExpect');
const PageObjects = getPageObjects(['common', 'header', 'home', 'dashboard', 'timePicker']);
const kibanaServer = getService('kibanaServer');
const browser = getService('browser');
describe('upgrade dashboard smoke tests', function describeIndexTests() {
@ -37,12 +36,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
basePath,
});
await PageObjects.header.waitUntilLoadingHasFinished();
await kibanaServer.uiSettings.update(
{
'visualization:visualize:legacyPieChartsLibrary': true,
},
{ space }
);
await browser.refresh();
});
dashboardTests.forEach(({ name, numPanels }) => {