From 0521ba2c0d7a62cef3d4def66fc15b59cc34ceef Mon Sep 17 00:00:00 2001 From: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com> Date: Wed, 2 Aug 2023 13:05:12 +0100 Subject: [PATCH] fix: Fix search for s3 datasources (#25835) When the column field is an empty array, it breaks searching, this PR fixes that issue. Fixes #25540 ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [x] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [x] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed --- .../Explorer/Datasources/DatasourceStructureContainer.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/client/src/pages/Editor/Explorer/Datasources/DatasourceStructureContainer.tsx b/app/client/src/pages/Editor/Explorer/Datasources/DatasourceStructureContainer.tsx index 411881bd29..e600ec75b4 100644 --- a/app/client/src/pages/Editor/Explorer/Datasources/DatasourceStructureContainer.tsx +++ b/app/client/src/pages/Editor/Explorer/Datasources/DatasourceStructureContainer.tsx @@ -116,6 +116,10 @@ const Container = (props: Props) => { const list: string[] = []; props.datasourceStructure.tables.map((table) => { + // if the column is empty push the table name alone. + if (table.columns.length === 0) { + list.push(`${table.name}~`); + } table.columns.forEach((column) => { list.push(`${table.name}~${column.name}`); }); @@ -139,7 +143,7 @@ const Container = (props: Props) => { flatStructure.forEach((structure) => { const segments = structure.split("~"); // if the value is present in the columns, add the column and its parent table. - if (segments[1].toLowerCase().includes(value)) { + if (!!segments[1] && segments[1].toLowerCase().includes(value)) { tables.add(segments[0]); columns.add(segments[1]); return;