From 2d4537c4d85df1ff368f3e78a7086c29ab30258f Mon Sep 17 00:00:00 2001 From: Chirag Madlani <12962843+chirag-madlani@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:15:07 +0530 Subject: [PATCH] fix: GEN-1856 encode and escape search value for the tag search (#18285) * fix: GEN-1856 encode and escape search value for the tag * fix test * add missing import (cherry picked from commit 3b182c91c8a53d11aa6fb5f880e917556cb087a7) --- .../src/main/resources/ui/src/utils/TagClassBase.test.ts | 6 ++++++ .../src/main/resources/ui/src/utils/TagClassBase.ts | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/TagClassBase.test.ts b/openmetadata-ui/src/main/resources/ui/src/utils/TagClassBase.test.ts index 61efade4107..a393d968c22 100644 --- a/openmetadata-ui/src/main/resources/ui/src/utils/TagClassBase.test.ts +++ b/openmetadata-ui/src/main/resources/ui/src/utils/TagClassBase.test.ts @@ -16,6 +16,12 @@ import tagClassBase, { TagClassBase } from './TagClassBase'; jest.mock('../rest/searchAPI'); + +jest.mock('./StringsUtils', () => ({ + getEncodedFqn: jest.fn().mockReturnValue('test'), + escapeESReservedCharacters: jest.fn().mockReturnValue('test'), +})); + describe('TagClassBase', () => { beforeEach(() => { (searchQuery as jest.Mock).mockClear(); diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/TagClassBase.ts b/openmetadata-ui/src/main/resources/ui/src/utils/TagClassBase.ts index f8cdf0d45b6..a69c641afa8 100644 --- a/openmetadata-ui/src/main/resources/ui/src/utils/TagClassBase.ts +++ b/openmetadata-ui/src/main/resources/ui/src/utils/TagClassBase.ts @@ -13,11 +13,14 @@ import { PAGE_SIZE } from '../constants/constants'; import { SearchIndex } from '../enums/search.enum'; import { searchQuery } from '../rest/searchAPI'; +import { escapeESReservedCharacters, getEncodedFqn } from './StringsUtils'; class TagClassBase { public async getTags(searchText: string, page: number) { + // this is to esacpe and encode any chars which is known by ES search internally + const encodedValue = getEncodedFqn(escapeESReservedCharacters(searchText)); const res = await searchQuery({ - query: `*${searchText}*`, + query: `*${encodedValue}*`, filters: 'disabled:false', pageNumber: page, pageSize: PAGE_SIZE,