From a27d36f41fb4718ee33c46d271a2b3dc3b47bd5e Mon Sep 17 00:00:00 2001 From: Aniket Katkar Date: Thu, 16 Oct 2025 10:13:55 +0530 Subject: [PATCH] Fix the advanced search AUT failing due to page closed (#23904) --- .../ui/playwright/utils/advancedSearch.ts | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/advancedSearch.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/advancedSearch.ts index 60de2229b14..39fb51601b6 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/advancedSearch.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/advancedSearch.ts @@ -537,24 +537,33 @@ export const checkAddRuleOrGroupWithOperator = async ( .click(); } - const searchRes = page.waitForResponse( - `/api/v1/search/query?*index=dataAsset&from=0&size=15*${getEncodedFqn( - searchCriteria1.toLowerCase(), - true - )}*${getEncodedFqn(searchCriteria2.toLowerCase(), true)}*` - ); - await page.getByTestId('apply-btn').click(); - // Since the OR operator with must not conditions will result in huge API response // with huge data, checking the required criteria might not be present on first page // Hence, checking the criteria only for AND operator - if (field.id !== 'Column' && operator === 'AND') { + if (field.id === 'Column') { + await page.getByTestId('apply-btn').click(); + } else { + const searchRes = page.waitForResponse( + `/api/v1/search/query?*index=dataAsset&from=0&size=15*${getEncodedFqn( + searchCriteria1.toLowerCase(), + true + )}*${getEncodedFqn(searchCriteria2.toLowerCase(), true)}*` + ); + await page.getByTestId('apply-btn').click(); const res = await searchRes; const json = await res.json(); const hits = json.hits.hits; - expect(JSON.stringify(hits)).toContain(searchCriteria1); - expect(JSON.stringify(hits)).not.toContain(searchCriteria2); + if (operator === 'AND') { + expect(JSON.stringify(hits)).toContain(searchCriteria1); + expect(JSON.stringify(hits)).not.toContain(searchCriteria2); + } else { + const hitsString = JSON.stringify(hits); + const containsCriteria1 = hitsString.includes(searchCriteria1); + const containsCriteria2 = hitsString.includes(searchCriteria2); + + expect(containsCriteria1 || !containsCriteria2).toBe(true); + } } };