OpenSearch-Dashboards
OpenSearch-Dashboards copied to clipboard
[Meta]Increase test coverage for Multiple Datasource feature support
Is your feature request related to a problem? Please describe.
The test coverage for Multiple data source feature is not good enough. Some breaking change can be introduced without enough test to capture. We need to increase the test coverage for supporting this feature.
This meta issue is used to track the test coverage for MDS for 2.15 release List the missing test cases and related action items here:
Unit Test:
- custom_database_icon
- data_source_aggregated_view
- data_source_error_menu
- data_source_item
- data_source_multi_selectable
- data_source_view
- edit_data_source
- toast_button
- validation Integration and End-to-end Test:
Feature | Test Case | Expected Behavior | Location |
---|---|---|---|
Delete data source | When delete data source | confirmation popout | OSD |
default data source | With empty data source list and hide local cluster, create the first data source | the first data source will be set as default | FT repo |
With empty data source list and not hide local cluster, create the first data source | the first data source will be set as default | FT repo | |
With empty data source list and not hide local cluster | local cluster will be default data source | FT repo | |
With non-empty data source list | default label can be displayed | FT repo | |
DataSourceView | When hide local cluster and pass empty string | nothing to render | FT repo |
When not hide local cluster and pass empty string | render local cluster as selectedOption | FT repo | |
When hide local cluster and pass invalid data source id | Render default data source if exist default option | FT repo | |
Render error toast if default option not exist | FT repo | ||
When not hide local cluster and pass invalid data source id | Render default data source if exist default option | FT repo | |
Render error toast if default option not exist | FT repo | ||
When hide local cluster and only pass in valid data source id | Render the label by fetch dataSourceObj by the input id if this obj is not filtered out | FT repo | |
Render error if the fetch dataSourceObj is filtered out | FT repo | ||
When not hide local cluster and only pass in valid data source id | Render the label by fetch dataSourceObj by the input id if this obj is not filtered out | FT repo | |
Render error if the fetch dataSourceObj is filtered out | FT repo | ||
When hide local cluster and pass both id and label for selectedOption | Render selectedOption even if this option is filtered out | FT repo | |
Render selectedOption if this option is not filtered out | FT repo | ||
DataSourceSelector | When default option is provided, id is empty string while hide local cluster setting is true | Show toasts saying the data source is not available | FT repo |
When default option is provided, id is empty string while hide local cluster setting is false | Render local cluster | FT repo | |
When there are compatible datasource options and default data source, hide local cluster | Display default data source should show up on the first load | FT repo | |
When there are compatible datasource options and default data source, not hide local cluster | Display default data source should show up on the first load | FT repo | |
When empty array is passed for default option and hide local cluster | Show placeholder text | FT repo | |
When empty array is passed for default option and not hide local cluster | Show placeholder text | FT repo | |
When invalid data source id is passed in and hide local cluster | Show toast saying the data source is not available | FT repo | |
When invalid data source id is passed in and not hide local cluster | Show toast saying the data source is not available | FT repo | |
When empty data source id is passed in and hide local cluster setting is set to false | Show local cluster on initial load | FT repo | |
When there is default data source, but data source filter filters it out, and hide local cluster is set to false | Show local cluster | FT repo | |
When all data sources are deleted, hide local cluster is set to true | Show toast saying no available data sources | FT repo | |
When valid data source id is passed in | Show the data source regardless local cluster setting | FT repo | |
Data source long name testing | FT repo | ||
Data Source Selectable | When default option is provided, id is empty string while hide local cluster setting is true | Show toasts saying the data source is not available | FT repo |
When default option is provided, id is empty string while hide local cluster setting is false | Show local cluster | FT repo | |
When there are compatible datasource options and default data source | Default data source should show up on the first load in regardless of the hide local cluster setting | FT repo | |
When invalid data source id is passed in | Show toast saying the data source is not available in regardless of the hide local cluster setting | FT repo | |
When there is default data source, but data source filter filters it out, and hide local cluster is set to false | Show local cluster | FT repo | |
When there is default data source, but data source filter filters it out, and hide local cluster is set to true | Show toast saying the data source is not available | FT repo | |
When all data sources are deleted, hide local cluster is set to true | Show toast saying no available data sources | FT repo | |
When valid data source id is passed in | Show the data source | FT repo | |
DataSourceAggregatedView | No data source added and hide local cluster | Show warning for no data source connected | FT repo |
No data source added and not hide local cluster | Show local cluster | FT repo | |
Incompatible data sources and hide local cluster | Show warning | FT repo | |
Incompatible data sources and not hide local cluster | Show local cluster | FT repo | |
When pass in data source options | Render data sources | FT repo | |
When pass invalid data source id | Show error | FT repo | |
DataSourceAggregatedView list active | No data source added and hide local cluster | Show warning for no data source connected | FT repo |
No data source added and not hide local cluster | Show local cluster | FT repo | |
When enable one data source and hide local cluster | Show the data source used on the current page | FT repo | |
When enable one data source and not hide local cluster | Show the data source used on the current page and local cluster | FT repo | |
When passed input contains invalid data source | Show the data source option but uncheck the invalid ones | FT repo | |
When pass in local cluster but hide local cluster | Display empty | FT repo | |
When all data sourced filtered out and hide local cluster | Show warning for no data source connected | FT repo | |
When all data sourced filtered out and not hide local cluster | Only show local cluster | FT repo | |
Versions | Call fetch data source | Can get meta data from installed plugins | OSD and FT repo |
Import saved objects | When enable data source | Can import saved object with specified data source under create new copy/check conflict and override/manual select override | OSD and FT repo |
When disable data source | Can import saved object from non-MDS cluster | OSD and FT repo | |
Add sample data | When disable data source | Can add sample data | OSD and FT repo |
When enable data source | Can add sample data | OSD and FT repo | |
Dev tools with MDS | When enable data source | Show default data source if it exists, other than local cluster, Can select other data source in available list, Show warning when no data source and hide local cluster | OSD and FT repo |
When disable data source | Not show anything | OSD and FT repo | |
TSVB with MDS | When enable data source | Pass in undefined activeOption when data_source_id is not present | OSD and FT repo |
Pass in pass in Local cluster if data_source_id: '' | OSD and FT repo | ||
pass in selected datasource if data_source_id: some-datasource | OSD and FT repo | ||
invalid/filtered out data_source_id should be handled by our selector component already | OSD and FT repo | ||
When disable data source | Ignore data_source_id field and just query from Local cluster | OSD and FT repo |
Describe the solution you'd like
A clear and concise description of what you want to happen.
Cover as many as possible test cases for supporting multiple data source ( when enable data source )
A clear and concise description of any alternative solutions or features you've considered.
N/A Add any other context or screenshots about the feature request here.
For different cases of a same function or component, I would suggest to follow similar pattern in @huyaboo 's PR https://github.com/opensearch-project/OpenSearch-Dashboards/pull/6678/files#diff-5bee04d7a72154306ca30ebf14b62ae22546ca83e47c797a9e6892436269e7c8R293
@yujin-emma For this meta issue, do we have any tasks remaining?