This is an automated email from the ASF dual-hosted git repository.

kgabryje pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new f049d3e34aa fix: Search in folders editor with verbose names (#38101)
f049d3e34aa is described below

commit f049d3e34aa9d96d0eb2ecc4e19581caeefc0891
Author: Kamil Gabryjelski <[email protected]>
AuthorDate: Thu Feb 19 18:45:22 2026 +0100

    fix: Search in folders editor with verbose names (#38101)
---
 .../FoldersEditor/folderOperations.test.ts         | 37 ++++++++++++++++++++++
 .../Datasource/FoldersEditor/folderOperations.ts   |  8 ++++-
 2 files changed, 44 insertions(+), 1 deletion(-)

diff --git 
a/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.test.ts
 
b/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.test.ts
index df7e1ea9280..0b0c8f7dd6b 100644
--- 
a/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.test.ts
+++ 
b/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.test.ts
@@ -124,6 +124,43 @@ describe('folderUtils', () => {
 
       expect(result.size).toBe(4);
     });
+
+    test('should match by verbose_name', () => {
+      const metrics: Metric[] = [
+        {
+          uuid: 'metric-v1',
+          metric_name: 'count',
+          verbose_name: 'COUNT(*)',
+          expression: 'COUNT(*)',
+        } as Metric,
+      ];
+      const result = filterItemsBySearch('COUNT', metrics);
+
+      expect(result.size).toBe(1);
+      expect(result.has('metric-v1')).toBe(true);
+    });
+
+    test('should match by expression', () => {
+      const result = filterItemsBySearch('COUNT(*)', mockMetrics);
+
+      expect(result.size).toBe(1);
+      expect(result.has('metric-1')).toBe(true);
+    });
+
+    test('should match special characters in search term', () => {
+      const metrics: Metric[] = [
+        {
+          uuid: 'metric-special',
+          metric_name: 'count',
+          verbose_name: 'COUNT(*)',
+          expression: 'COUNT(*)',
+        } as Metric,
+      ];
+      const result = filterItemsBySearch('(*)', metrics);
+
+      expect(result.size).toBe(1);
+      expect(result.has('metric-special')).toBe(true);
+    });
   });
 
   describe('isDefaultFolder', () => {
diff --git 
a/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.ts 
b/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.ts
index 852de41f7f9..e9f0b0d9119 100644
--- 
a/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.ts
+++ 
b/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.ts
@@ -80,7 +80,13 @@ export const filterItemsBySearch = (
 
   items.forEach(item => {
     const name = 'metric_name' in item ? item.metric_name : item.column_name;
-    if (name?.toLowerCase().includes(lowerSearch)) {
+    const { verbose_name: verboseName, expression } = item;
+
+    if (
+      name?.toLowerCase().includes(lowerSearch) ||
+      verboseName?.toLowerCase().includes(lowerSearch) ||
+      expression?.toLowerCase().includes(lowerSearch)
+    ) {
       matchingIds.add(item.uuid);
     }
   });

Reply via email to