[Dasboard] Update embeddable rendering test for dashboard (#121000)

* Update embeddable rendering test on dashboard

* Updating dashboard fixture to remove old viz
This commit is contained in:
Poff Poffenberger 2021-12-15 09:52:02 -06:00 committed by GitHub
parent 52a9d60e3b
commit 452dd1d01b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 61 deletions

View file

@ -16,7 +16,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const kibanaServer = getService('kibanaServer');
const PageObjects = getPageObjects(['common', 'dashboard']);
describe('dashboard data-shared attributes', () => {
describe('dashboard options', () => {
let originalTitles: string[] = [];
before(async () => {

View file

@ -24,6 +24,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const esArchiver = getService('esArchiver');
const kibanaServer = getService('kibanaServer');
const pieChart = getService('pieChart');
const elasticChart = getService('elasticChart');
const security = getService('security');
const dashboardExpect = getService('dashboardExpect');
const dashboardAddPanel = getService('dashboardAddPanel');
@ -32,6 +33,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'dashboard',
'header',
'visualize',
'visChart',
'discover',
'timePicker',
]);
@ -40,7 +42,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const expectAllDataRenders = async () => {
await pieChart.expectPieSliceCount(16);
await dashboardExpect.metricValuesExist(['7,544']);
await dashboardExpect.seriesElementCount(19);
await dashboardExpect.seriesElementCount(14);
const tsvbGuageExists = await find.existsByCssSelector('.tvbVisHalfGauge');
expect(tsvbGuageExists).to.be(true);
await dashboardExpect.timelionLegendCount(0);
@ -49,7 +51,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dashboardExpect.goalAndGuageLabelsExist(['62.925%', '55.625%', '11.915 GB']);
await dashboardExpect.dataTableRowCount(5);
await dashboardExpect.tagCloudWithValuesFound(['CN', 'IN', 'US', 'BR', 'ID']);
// TODO add test for 'region map viz'
// TODO add test for 'tsvb gauge' viz
// TODO add test for 'geo map' viz
// This tests the presence of the two input control embeddables
@ -59,8 +60,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dashboardExpect.tsvbTopNValuesExist(['5,734.79', '6,286.675']);
await dashboardExpect.tsvbMetricValuesExist(['210,007,889,606']);
// TODO add test for 'animal sound pie' viz
// This tests the area chart and non timebased line chart points
await dashboardExpect.lineChartPointsCount(5);
// This tests line charts that do not use timeseries data
const dogData = await elasticChart.getChartDebugData('visTypeXyChart', 2);
const pointCount = dogData?.areas?.reduce((acc, a) => {
return acc + a.lines.y1.points.length;
}, 0);
expect(pointCount).to.equal(6);
// TODO add test for 'scripted filter and query' viz
// TODO add test for 'animal weight linked to search' viz
// TODO add test for the last vega viz
@ -71,27 +78,30 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await pieChart.expectPieSliceCount(0);
await dashboardExpect.seriesElementCount(0);
await dashboardExpect.dataTableNoResult();
await dashboardExpect.savedSearchRowCount(0);
await dashboardExpect.savedSearchNoResult();
await dashboardExpect.inputControlItemCount(5);
await dashboardExpect.metricValuesExist(['0']);
await dashboardExpect.markdownWithValuesExists(["I'm a markdown!"]);
// Three instead of 0 because there is a visualization based off a non time based index that
// should still show data.
await dashboardExpect.lineChartPointsCount(3);
const dogData = await elasticChart.getChartDebugData('visTypeXyChart');
const pointCount = dogData?.areas?.reduce((acc, a) => {
return acc + a.lines.y1.points.length;
}, 0);
expect(pointCount).to.equal(6);
await dashboardExpect.timelionLegendCount(0);
const tsvbGuageExists = await find.existsByCssSelector('.tvbVisHalfGauge');
expect(tsvbGuageExists).to.be(true);
await dashboardExpect.tsvbMetricValuesExist(['0']);
await dashboardExpect.tsvbMarkdownWithValuesExists(['Hi Avg last bytes: 0']);
await dashboardExpect.tsvbMetricValuesExist(['-']);
await dashboardExpect.tsvbMarkdownWithValuesExists(['Hi Avg last bytes:']);
await dashboardExpect.tsvbTableCellCount(0);
await dashboardExpect.tsvbTopNValuesExist(['0']);
await dashboardExpect.tsvbTopNValuesExist(['-']);
await dashboardExpect.vegaTextsDoNotExist(['5,000']);
};
// Failing: See https://github.com/elastic/kibana/issues/76245
describe.skip('dashboard embeddable rendering', function describeIndexTests() {
describe('dashboard embeddable rendering', function describeIndexTests() {
before(async () => {
await security.testUser.setRoles(['kibana_admin', 'animals', 'test_logstash_reader']);
await esArchiver.load('test/functional/fixtures/es_archiver/dashboard/current/kibana');
@ -116,6 +126,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
it('adding visualizations', async () => {
await elasticChart.setNewChartUiDebugFlag(true);
visNames = await dashboardAddPanel.addEveryVisualization('"Rendering Test"');
await dashboardExpect.visualizationsArePresent(visNames);
@ -123,7 +135,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
visNames.push(await dashboardAddPanel.addVisualization('Filter Bytes Test: vega'));
await PageObjects.header.waitUntilLoadingHasFinished();
await dashboardExpect.visualizationsArePresent(visNames);
expect(visNames.length).to.be.equal(27);
expect(visNames.length).to.be.equal(26);
await PageObjects.dashboard.waitForRenderComplete();
});
@ -134,7 +146,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dashboardAddPanel.closeAddPanel();
await PageObjects.header.waitUntilLoadingHasFinished();
await dashboardExpect.visualizationsArePresent(visAndSearchNames);
expect(visAndSearchNames.length).to.be.equal(28);
expect(visAndSearchNames.length).to.be.equal(27);
await PageObjects.dashboard.waitForRenderComplete();
await PageObjects.dashboard.saveDashboard('embeddable rendering test', {
@ -159,8 +171,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
it('data rendered correctly when dashboard is hard refreshed', async () => {
const currentUrl = await browser.getCurrentUrl();
await browser.get(currentUrl, true);
await browser.refresh();
const alert = await browser.getAlert();
await alert?.accept();
await elasticChart.setNewChartUiDebugFlag(true);
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.dashboard.waitForRenderComplete();
await expectAllDataRenders();

File diff suppressed because one or more lines are too long

View file

@ -236,6 +236,12 @@ export class DashboardExpectService extends FtrService {
});
}
async savedSearchNoResult() {
const savedSearchTable = await this.testSubjects.find('embeddedSavedSearchDocTable');
const resultStr = await savedSearchTable.getVisibleText();
expect(resultStr).to.be('No results found');
}
async savedSearchRowsExist() {
this.testSubjects.existOrFail('docTableExpandToggleColumn');
}