Skip to content

Commit

Permalink
[Test] Add tag cloud visualization to dashboard in functional test fo…
Browse files Browse the repository at this point in the history
…r reporting (#87600)

* add tag cloud to dashboard in kibana archive

* add pdf snapshot testing to downloaded pdfs

* update png baseline image

* remove pdf snapshot testing

* rename mislabeled variable

* fix test comparison

* remove unnecessary pdf utf8 checks

* Update screenshots.ts

Co-authored-by: Kibana Machine <[email protected]>
  • Loading branch information
tsullivan and kibanamachine authored Jan 16, 2021
1 parent 273ad4e commit abffb19
Show file tree
Hide file tree
Showing 5 changed files with 1,371 additions and 1,683 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 23 additions & 5 deletions x-pack/test/functional/apps/dashboard/reporting/screenshots.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
const es = getService('es');
const testSubjects = getService('testSubjects');

describe('Screenshots', () => {
describe('Dashboard Reporting Screenshots', () => {
before('initialize tests', async () => {
log.debug('ReportingPage:initTests');
await esArchiver.loadIfNeeded('reporting/ecommerce');
Expand Down Expand Up @@ -93,8 +93,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
});
});

describe('Preserve Layout', () => {
it('matches baseline report', async function () {
describe('PNG Layout', () => {
it('downloads a PNG file', async function () {
const writeSessionReport = async (name: string, rawPdf: Buffer, reportExt: string) => {
const sessionDirectory = path.resolve(REPORTS_FOLDER, 'session');
await mkdirAsync(sessionDirectory, { recursive: true });
Expand Down Expand Up @@ -122,14 +122,32 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
const reportData = await PageObjects.reporting.getRawPdfReportData(url);
const reportFileName = 'dashboard_preserve_layout';
const sessionReportPath = await writeSessionReport(reportFileName, reportData, 'png');
const percentSimilar = await checkIfPngsMatch(
const percentDiff = await checkIfPngsMatch(
sessionReportPath,
getBaselineReportPath(reportFileName, 'png'),
config.get('screenshots.directory'),
log
);

expect(percentSimilar).to.be.lessThan(0.1);
expect(percentDiff).to.be.lessThan(0.09);
});
});

describe('Preserve Layout', () => {
it('downloads a PDF file', async function () {
// Generating and then comparing reports can take longer than the default 60s timeout because the comparePngs
// function is taking about 15 seconds per comparison in jenkins.
this.timeout(300000);
await PageObjects.common.navigateToApp('dashboard');
await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard');
await PageObjects.reporting.openPdfReportingPanel();
await PageObjects.reporting.clickGenerateReportButton();

const url = await PageObjects.reporting.getReportURL(60000);
const res = await PageObjects.reporting.getResponse(url);

expect(res.status).to.equal(200);
expect(res.get('content-type')).to.equal('application/pdf');
});
});
});
Expand Down
2 changes: 1 addition & 1 deletion x-pack/test/functional/apps/visualize/reporting.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'visEditor',
]);

describe('Visualize', () => {
describe('Visualize Reporting Screenshots', () => {
before('initialize tests', async () => {
log.debug('ReportingPage:initTests');
await esArchiver.loadIfNeeded('reporting/ecommerce');
Expand Down
Binary file not shown.
Loading

0 comments on commit abffb19

Please sign in to comment.