[Discover] Add functional tests for DocViewer extension (#187742)

- Closes https://github.com/elastic/kibana/issues/186265
This commit is contained in:
Julia Rechkunova 2024-07-10 12:19:25 +02:00 committed by GitHub
parent ea2509914f
commit 4b19cc7f17
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 133 additions and 0 deletions

View file

@ -52,6 +52,17 @@ export const exampleDataSourceProfileProvider: DataSourceProfileProvider = {
);
},
}),
getDocViewer: (prev) => (params) => {
const recordId = params.record.id;
const prevValue = prev(params);
return {
title: `Record #${recordId}`,
docViewsRegistry: (registry) => {
registry.enableById('doc_view_logs_overview');
return prevValue.docViewsRegistry(registry);
},
};
},
},
resolve: (params) => {
let indexPattern: string | undefined;

View file

@ -14,6 +14,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const PageObjects = getPageObjects(['common', 'timePicker', 'discover', 'unifiedFieldList']);
const testSubjects = getService('testSubjects');
const dataViews = getService('dataViews');
const dataGrid = getService('dataGrid');
describe('data source profile', () => {
describe('ES|QL mode', () => {
@ -58,6 +59,40 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
expect(await logLevels[2].getVisibleText()).to.be('Info');
});
});
describe('doc viewer extension', () => {
it('should not render custom doc viewer view', async () => {
const state = kbnRison.encode({
dataSource: { type: 'esql' },
query: { esql: 'from my-example-* | sort @timestamp desc' },
});
await PageObjects.common.navigateToApp('discover', {
hash: `/?_a=${state}`,
});
await PageObjects.discover.waitUntilSearchingHasFinished();
await dataGrid.clickRowToggle({ rowIndex: 0 });
await testSubjects.existOrFail('docViewerTab-doc_view_table');
await testSubjects.existOrFail('docViewerTab-doc_view_source');
await testSubjects.missingOrFail('docViewerTab-doc_view_logs_overview');
expect(await testSubjects.getVisibleText('docViewerRowDetailsTitle')).to.be('Result');
});
it('should render custom doc viewer view', async () => {
const state = kbnRison.encode({
dataSource: { type: 'esql' },
query: { esql: 'from my-example-logs | sort @timestamp desc' },
});
await PageObjects.common.navigateToApp('discover', {
hash: `/?_a=${state}`,
});
await PageObjects.discover.waitUntilSearchingHasFinished();
await dataGrid.clickRowToggle({ rowIndex: 0 });
await testSubjects.existOrFail('docViewerTab-doc_view_table');
await testSubjects.existOrFail('docViewerTab-doc_view_source');
await testSubjects.existOrFail('docViewerTab-doc_view_logs_overview');
expect(await testSubjects.getVisibleText('docViewerRowDetailsTitle')).to.be('Record #0');
});
});
});
describe('data view mode', () => {
@ -92,6 +127,32 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
expect(await logLevels[2].getVisibleText()).to.be('Info');
});
});
describe('doc viewer extension', () => {
it('should not render custom doc viewer view', async () => {
await PageObjects.common.navigateToApp('discover');
await dataViews.switchTo('my-example-*');
await PageObjects.discover.waitUntilSearchingHasFinished();
await dataGrid.clickRowToggle({ rowIndex: 0 });
await testSubjects.existOrFail('docViewerTab-doc_view_table');
await testSubjects.existOrFail('docViewerTab-doc_view_source');
await testSubjects.missingOrFail('docViewerTab-doc_view_logs_overview');
expect(await testSubjects.getVisibleText('docViewerRowDetailsTitle')).to.be('Document');
});
it('should render custom doc viewer view', async () => {
await PageObjects.common.navigateToApp('discover');
await dataViews.switchTo('my-example-logs');
await PageObjects.discover.waitUntilSearchingHasFinished();
await dataGrid.clickRowToggle({ rowIndex: 0 });
await testSubjects.existOrFail('docViewerTab-doc_view_table');
await testSubjects.existOrFail('docViewerTab-doc_view_source');
await testSubjects.existOrFail('docViewerTab-doc_view_logs_overview');
expect(await testSubjects.getVisibleText('docViewerRowDetailsTitle')).to.be(
'Record #my-example-logs::XdQFDpABfGznVC1bCHLo::'
);
});
});
});
});
}

View file

@ -13,6 +13,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const PageObjects = getPageObjects(['common', 'timePicker', 'discover', 'unifiedFieldList']);
const testSubjects = getService('testSubjects');
const dataViews = getService('dataViews');
const dataGrid = getService('dataGrid');
describe('data source profile', () => {
describe('ES|QL mode', () => {
@ -53,6 +54,40 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
expect(await logLevels[2].getVisibleText()).to.be('Info');
});
});
describe('doc viewer extension', () => {
it('should not render custom doc viewer view', async () => {
const state = kbnRison.encode({
dataSource: { type: 'esql' },
query: { esql: 'from my-example-* | sort @timestamp desc' },
});
await PageObjects.common.navigateToApp('discover', {
hash: `/?_a=${state}`,
});
await PageObjects.discover.waitUntilSearchingHasFinished();
await dataGrid.clickRowToggle({ rowIndex: 0 });
await testSubjects.existOrFail('docViewerTab-doc_view_table');
await testSubjects.existOrFail('docViewerTab-doc_view_source');
await testSubjects.missingOrFail('docViewerTab-doc_view_logs_overview');
expect(await testSubjects.getVisibleText('docViewerRowDetailsTitle')).to.be('Result');
});
it('should render custom doc viewer view', async () => {
const state = kbnRison.encode({
dataSource: { type: 'esql' },
query: { esql: 'from my-example-logs | sort @timestamp desc' },
});
await PageObjects.common.navigateToApp('discover', {
hash: `/?_a=${state}`,
});
await PageObjects.discover.waitUntilSearchingHasFinished();
await dataGrid.clickRowToggle({ rowIndex: 0 });
await testSubjects.existOrFail('docViewerTab-doc_view_table');
await testSubjects.existOrFail('docViewerTab-doc_view_source');
await testSubjects.existOrFail('docViewerTab-doc_view_logs_overview');
expect(await testSubjects.getVisibleText('docViewerRowDetailsTitle')).to.be('Record #0');
});
});
});
describe('data view mode', () => {
@ -83,6 +118,32 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
expect(await logLevels[2].getVisibleText()).to.be('Info');
});
});
describe('doc viewer extension', () => {
it('should not render custom doc viewer view', async () => {
await PageObjects.common.navigateToApp('discover');
await dataViews.switchTo('my-example-*');
await PageObjects.discover.waitUntilSearchingHasFinished();
await dataGrid.clickRowToggle({ rowIndex: 0 });
await testSubjects.existOrFail('docViewerTab-doc_view_table');
await testSubjects.existOrFail('docViewerTab-doc_view_source');
await testSubjects.missingOrFail('docViewerTab-doc_view_logs_overview');
expect(await testSubjects.getVisibleText('docViewerRowDetailsTitle')).to.be('Document');
});
it('should render custom doc viewer view', async () => {
await PageObjects.common.navigateToApp('discover');
await dataViews.switchTo('my-example-logs');
await PageObjects.discover.waitUntilSearchingHasFinished();
await dataGrid.clickRowToggle({ rowIndex: 0 });
await testSubjects.existOrFail('docViewerTab-doc_view_table');
await testSubjects.existOrFail('docViewerTab-doc_view_source');
await testSubjects.existOrFail('docViewerTab-doc_view_logs_overview');
expect(await testSubjects.getVisibleText('docViewerRowDetailsTitle')).to.be(
'Record #my-example-logs::XdQFDpABfGznVC1bCHLo::'
);
});
});
});
});
}