Skip to content

Commit

Permalink
[BUG] Support duplicate index pattern name (opensearch-project#5946)
Browse files Browse the repository at this point in the history
* add key to index pattern options for support duplicate index pattern names

---------

Signed-off-by: Eric <[email protected]>
  • Loading branch information
mengweieric authored and SuZhou-Joe committed Mar 4, 2024
1 parent 73e52c4 commit 5a2a768
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
<DataSourceSelectable
dataSources={[
({
getDataSet: jest.fn().mockResolvedValue([]),
getType: jest.fn().mockReturnValue('DEFAULT_INDEX_PATTERNS'),
getName: jest.fn().mockReturnValue('Index patterns'),
} as unknown) as DataSourceType,
]}
dataSourceOptionList={mockDataSourceOptionListWithDuplicates}
selectedSources={selectedSourcesMock}
onDataSourceSelect={handleSelect}
setDataSourceOptionList={setDataSourceOptionListMock}
onGetDataSetError={onFetchDataSetErrorMock}
/>
);

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' }])
);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ export const getSourceOptions = (dataSource: DataSourceType, dataSet: DataSetTyp
...optionContent,
label: dataSet.title,
value: dataSet.id,
key: dataSet.id,
};
}
return {
Expand Down

0 comments on commit 5a2a768

Please sign in to comment.