From d6a4f305bccb40fc149e00eef58b289bde49fc9e Mon Sep 17 00:00:00 2001 From: Eric Wei Date: Mon, 26 Feb 2024 15:56:05 -0800 Subject: [PATCH] [BUG] Support duplicate index pattern name (#5946) * add key to index pattern options for support duplicate index pattern names --------- Signed-off-by: Eric --- CHANGELOG.md | 2 + .../datasource_selectable.test.tsx | 43 +++++++++++++++++++ .../datasource_selectable.tsx | 1 + 3 files changed, 46 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae29bf00eff1..e333ff2ae002 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -93,6 +93,8 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - [BUG][Multiple Datasource] Fix datasource testing connection unexpectedly passed with wrong endpoint [#5663](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5663) - [Table Visualization] Fix filter action buttons for split table aggregations ([#5619](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5619)) - [BUG][Discover] Allow saved sort from search embeddable to load in Dashboard ([#5934](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5934)) +- [BUG][Discover] Add key to index pattern options for support deplicate index pattern names([#5946](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5946)) + ### 🚞 Infrastructure diff --git a/src/plugins/data/public/data_sources/datasource_selector/datasource_selectable.test.tsx b/src/plugins/data/public/data_sources/datasource_selector/datasource_selectable.test.tsx index 3e6c99e420d6..63c2437cc7b3 100644 --- a/src/plugins/data/public/data_sources/datasource_selector/datasource_selectable.test.tsx +++ b/src/plugins/data/public/data_sources/datasource_selector/datasource_selectable.test.tsx @@ -181,4 +181,47 @@ describe('DataSourceSelectable', () => { ]; expect(optionTexts).toEqual(expectedIndexPatternSortedOrder); }); + + it('should allow display and selection of duplicated index patterns based on unique key', async () => { + const mockDataSourceOptionListWithDuplicates = [ + { + label: 'Index patterns', + options: [ + { label: 'duplicate-index-pattern', key: 'unique-key-1' }, + { label: 'unique-index-pattern-1', key: 'unique-key-2' }, + { label: 'duplicate-index-pattern', key: 'unique-key-3' }, + { label: 'unique-index-pattern-2', key: 'unique-key-4' }, + ], + }, + ] as any; + + const handleSelect = jest.fn(); + + render( + + ); + + const button = screen.getByLabelText('Open list of options'); + fireEvent.click(button); + + const optionsToSelect = screen.getAllByText('duplicate-index-pattern'); + fireEvent.click(optionsToSelect[1]); + + expect(handleSelect).toHaveBeenCalledWith( + expect.objectContaining([{ key: 'unique-key-3', label: 'duplicate-index-pattern' }]) + ); + }); }); diff --git a/src/plugins/data/public/data_sources/datasource_selector/datasource_selectable.tsx b/src/plugins/data/public/data_sources/datasource_selector/datasource_selectable.tsx index 1c6876815a0e..88abe18aa143 100644 --- a/src/plugins/data/public/data_sources/datasource_selector/datasource_selectable.tsx +++ b/src/plugins/data/public/data_sources/datasource_selector/datasource_selectable.tsx @@ -52,6 +52,7 @@ export const getSourceOptions = (dataSource: DataSourceType, dataSet: DataSetTyp ...optionContent, label: dataSet.title, value: dataSet.id, + key: dataSet.id, }; } return {