Skip to content

Commit 7038a73

Browse files
authored
[Explore Vis] adapt deprecated styles in embeddable (#10984)
1 parent 92d926d commit 7038a73

File tree

2 files changed

+47
-2
lines changed

2 files changed

+47
-2
lines changed

src/plugins/explore/public/embeddable/explore_embeddable.test.tsx

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ jest.mock('../components/visualizations/visualization_builder_utils', () => ({
7272
findRuleByIndex: jest.fn().mockReturnValue({
7373
toExpression: jest.fn(),
7474
}),
75+
adaptLegacyData: jest.fn().mockReturnValue({ useThresholdColor: true }),
76+
getColumnsByAxesMapping: jest.fn().mockReturnValue({
77+
numericalColumns: [],
78+
categoricalColumns: [],
79+
dateColumns: [],
80+
}),
7581
}));
7682

7783
describe('ExploreEmbeddable', () => {
@@ -507,4 +513,31 @@ describe('ExploreEmbeddable', () => {
507513
expect(embeddable.getOutput().error).toBeUndefined();
508514
expect(embeddable.getOutput().loading).toBe(false);
509515
});
516+
517+
test('should be able to adapt deprecated styles', async () => {
518+
jest.spyOn(visualizationRegistry, 'findRuleByAxesMapping').mockReturnValueOnce({
519+
id: 'test-rule',
520+
name: 'Test Rule',
521+
matches: jest.fn(),
522+
chartTypes: [{ type: 'line', priority: 100, name: 'Line Chart', icon: '' }],
523+
toSpec: jest.fn(),
524+
});
525+
526+
const adaptLegacyDataSpy = jest.spyOn(
527+
await import('../components/visualizations/visualization_builder_utils'),
528+
'adaptLegacyData'
529+
);
530+
531+
mockSavedExplore.visualization = JSON.stringify({
532+
chartType: 'line',
533+
axesMapping: { x: 'field1', y: 'field2' },
534+
thresholdLines: [], // deprecated style
535+
});
536+
mockSavedExplore.uiState = JSON.stringify({ activeTab: 'visualization' });
537+
538+
// @ts-ignore
539+
await embeddable.fetch();
540+
541+
expect(adaptLegacyDataSpy).toHaveBeenCalled();
542+
});
510543
});

src/plugins/explore/public/embeddable/explore_embeddable.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ import {
4545
StyleOptions,
4646
} from '../components/visualizations/utils/use_visualization_types';
4747
import { defaultPrepareQueryString } from '../application/utils/state_management/actions/query_actions';
48-
import { convertStringsToMappings } from '../components/visualizations/visualization_builder_utils';
48+
import {
49+
adaptLegacyData,
50+
convertStringsToMappings,
51+
} from '../components/visualizations/visualization_builder_utils';
4952
import { normalizeResultRows } from '../components/visualizations/utils/normalize_result_rows';
5053
import { visualizationRegistry } from '../components/visualizations/visualization_registry';
5154
import { getQueryWithSource } from '../application/utils/languages';
@@ -401,12 +404,21 @@ export class ExploreEmbeddable
401404
};
402405
this.searchProps.searchContext = searchContext;
403406
const styleOptions = visualization.params;
407+
408+
const styles = adaptLegacyData({
409+
type: selectedChartType,
410+
styles: styleOptions,
411+
axesMapping: visualization.axesMapping,
412+
})?.styles;
413+
414+
this.searchProps.styleOptions = styles;
415+
404416
const spec = matchedRule.toSpec(
405417
visualizationData.transformedData,
406418
numericalColumns,
407419
categoricalColumns,
408420
dateColumns,
409-
styleOptions,
421+
styles || styleOptions,
410422
selectedChartType,
411423
axesMapping
412424
);

0 commit comments

Comments
 (0)