Skip to content

Commit

Permalink
[Discover] Unskip Discover-Lens functional test suite (elastic#200687)
Browse files Browse the repository at this point in the history
Catching an invalid state of properties propagated to the UnifiedHistogram which is using the Lens embeddable in Discover, that causes a rendering error when e.g. ad hoc data views are being edited. Therefore the skipped testview can be unskipped.
  • Loading branch information
kertal authored and paulinashakirova committed Nov 26, 2024
1 parent 123a1a8 commit bfd04cc
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 6 deletions.
34 changes: 32 additions & 2 deletions src/plugins/unified_histogram/public/chart/histogram.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
import { useEuiTheme } from '@elastic/eui';
import { css } from '@emotion/react';
import React, { useState } from 'react';
import type { DataView } from '@kbn/data-views-plugin/public';
import type { DataView, DataViewSpec } from '@kbn/data-views-plugin/public';
import type { DefaultInspectorAdapters, Datatable } from '@kbn/expressions-plugin/common';
import type { IKibanaSearchResponse } from '@kbn/search-types';
import type { estypes } from '@elastic/elasticsearch';
import type { TimeRange } from '@kbn/es-query';
import type {
import {
EmbeddableComponentProps,
LensEmbeddableInput,
LensEmbeddableOutput,
Expand Down Expand Up @@ -59,6 +59,32 @@ export interface HistogramProps {
withDefaultActions: EmbeddableComponentProps['withDefaultActions'];
}

/**
* To prevent flakiness in the chart, we need to ensure that the data view config is valid.
* This requires that there are not multiple different data view ids in the given configuration.
* @param dataView
* @param visContext
* @param adHocDataViews
*/
const checkValidDataViewConfig = (
dataView: DataView,
visContext: UnifiedHistogramVisContext,
adHocDataViews: { [key: string]: DataViewSpec } | undefined
) => {
if (!dataView.id) {
return false;
}

if (!dataView.isPersisted() && !adHocDataViews?.[dataView.id]) {
return false;
}

if (dataView.id !== visContext.requestData.dataViewId) {
return false;
}
return true;
};

const computeTotalHits = (
hasLensSuggestions: boolean,
adapterTables:
Expand Down Expand Up @@ -204,6 +230,10 @@ export function Histogram({
}
`;

if (!checkValidDataViewConfig(dataView, visContext, lensProps.attributes.state.adHocDataViews)) {
return <></>;
}

return (
<>
<div
Expand Down
7 changes: 3 additions & 4 deletions test/functional/apps/discover/group3/_lens_vis.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
return seriesType;
}

// FLAKY: https://github.com/elastic/kibana/issues/184600
describe.skip('discover lens vis', function () {
describe('discover lens vis', function () {
before(async () => {
await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']);
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
Expand Down Expand Up @@ -655,8 +654,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await discover.waitUntilSearchingHasFinished();
await testSubjects.missingOrFail('unsavedChangesBadge');

await discover.chooseLensSuggestion('pie');
expect(await getCurrentVisTitle()).to.be('Pie');
await discover.chooseLensSuggestion('waffle');
expect(await getCurrentVisTitle()).to.be('Waffle');
await testSubjects.existOrFail('partitionVisChart');
expect(await discover.getVisContextSuggestionType()).to.be('lensSuggestion');

Expand Down

0 comments on commit bfd04cc

Please sign in to comment.