From b3606680174411a83cb7668d7f23a9208799fd40 Mon Sep 17 00:00:00 2001 From: Anirudh Reddy Malgari Date: Thu, 23 Oct 2025 16:26:02 -0700 Subject: [PATCH 1/9] Fixed some UX and React reconcilation errors on Tags page --- .../src/alchemy-components/components/Table/Table.tsx | 5 ++--- .../src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx | 6 +++++- .../src/app/tags/CreateNewTagModal/CreateNewTagModal.tsx | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/datahub-web-react/src/alchemy-components/components/Table/Table.tsx b/datahub-web-react/src/alchemy-components/components/Table/Table.tsx index a825afb267e36a..332c7f1e6f112d 100644 --- a/datahub-web-react/src/alchemy-components/components/Table/Table.tsx +++ b/datahub-web-react/src/alchemy-components/components/Table/Table.tsx @@ -195,10 +195,9 @@ export const Table = ({ const canExpand = expandable?.rowExpandable?.(row); // Check if row is expandable const key = `row-${index}-${sortColumn ?? 'none'}-${sortOrder ?? 'none'}`; return ( - <> + {/* Render the main row */} { if (focusedRowIndex === index) { @@ -298,7 +297,7 @@ export const Table = ({ )} - + ); })} {footer} diff --git a/datahub-web-react/src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx b/datahub-web-react/src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx index 0be417440c8898..60117ed95c3b16 100644 --- a/datahub-web-react/src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx +++ b/datahub-web-react/src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx @@ -72,7 +72,11 @@ export default function NavBarMenu({ menu, selectedKey, isCollapsed, iconSize, s return ( - {menu.items.map((item) => renderMenuItem(item))} + {menu.items.map((item) => ( + + {renderMenuItem(item)} + + ))} ); } diff --git a/datahub-web-react/src/app/tags/CreateNewTagModal/CreateNewTagModal.tsx b/datahub-web-react/src/app/tags/CreateNewTagModal/CreateNewTagModal.tsx index a2add3cbc46523..b118cf6a3b3368 100644 --- a/datahub-web-react/src/app/tags/CreateNewTagModal/CreateNewTagModal.tsx +++ b/datahub-web-react/src/app/tags/CreateNewTagModal/CreateNewTagModal.tsx @@ -103,7 +103,7 @@ const CreateNewTagModal: React.FC = ({ onClose, open }) setSelectedOwnerUrns([]); } catch (e: any) { message.destroy(); - message.error('Failed to create tag. An unexpected error occurred'); + message.error(e.message); } finally { setIsLoading(false); } From 34d8ffe0fe71265a0046a5a72af5935e8ede1413 Mon Sep 17 00:00:00 2001 From: Anirudh Reddy Malgari Date: Fri, 24 Oct 2025 12:00:53 -0700 Subject: [PATCH 2/9] fixed lint errors --- .../src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/datahub-web-react/src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx b/datahub-web-react/src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx index 60117ed95c3b16..6c1daead2892df 100644 --- a/datahub-web-react/src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx +++ b/datahub-web-react/src/app/homeV2/layout/navBarRedesign/NavBarMenu.tsx @@ -73,9 +73,7 @@ export default function NavBarMenu({ menu, selectedKey, isCollapsed, iconSize, s return ( {menu.items.map((item) => ( - - {renderMenuItem(item)} - + {renderMenuItem(item)} ))} ); From a511caf3bcd86553f965f7af11a381081a4dc33e Mon Sep 17 00:00:00 2001 From: Anirudh Reddy Malgari Date: Mon, 27 Oct 2025 13:11:06 -0700 Subject: [PATCH 3/9] fixing cypress test --- .../app/tags/CreateNewTagModal/CreateNewTagModal.tsx | 12 ++++++++++-- .../e2e/manage_tagsV2/helpers/tags_page_helper.js | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/datahub-web-react/src/app/tags/CreateNewTagModal/CreateNewTagModal.tsx b/datahub-web-react/src/app/tags/CreateNewTagModal/CreateNewTagModal.tsx index b118cf6a3b3368..b67476bcc42e5e 100644 --- a/datahub-web-react/src/app/tags/CreateNewTagModal/CreateNewTagModal.tsx +++ b/datahub-web-react/src/app/tags/CreateNewTagModal/CreateNewTagModal.tsx @@ -103,7 +103,7 @@ const CreateNewTagModal: React.FC = ({ onClose, open }) setSelectedOwnerUrns([]); } catch (e: any) { message.destroy(); - message.error(e.message); + message.error(`Failed to create tag. ${e.message}`); } finally { setIsLoading(false); } @@ -136,7 +136,15 @@ const CreateNewTagModal: React.FC = ({ onClose, open }) ]; return ( - + {/* Tag Details Section */} Date: Mon, 27 Oct 2025 14:56:16 -0700 Subject: [PATCH 4/9] fixed timezone test to accommodate time changes in Europe/London --- .../src/app/ingestV2/source/__tests__/tests_utils.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datahub-web-react/src/app/ingestV2/source/__tests__/tests_utils.test.tsx b/datahub-web-react/src/app/ingestV2/source/__tests__/tests_utils.test.tsx index 2dc4f2ae02bf1a..f4b7f65056f74f 100644 --- a/datahub-web-react/src/app/ingestV2/source/__tests__/tests_utils.test.tsx +++ b/datahub-web-react/src/app/ingestV2/source/__tests__/tests_utils.test.tsx @@ -567,7 +567,7 @@ describe('formatTimezone', () => { expect(['EST', 'EDT']).toContain(nycAbbr); const londonAbbr = formatTimezone('Europe/London'); - expect(['GMT+1', 'BST', 'GMT']).toContain(londonAbbr); + expect(['GMT', 'BST']).toContain(londonAbbr); // Tokyo doesn't observe DST, so it's always GMT+9 expect(formatTimezone('Asia/Tokyo')).toBe('GMT+9'); From 5cba20e7e32289ff521291b8a8c1f85aac05aa78 Mon Sep 17 00:00:00 2001 From: Anirudh Reddy Malgari Date: Mon, 27 Oct 2025 16:36:42 -0700 Subject: [PATCH 5/9] fixing some tests --- .../cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js b/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js index 40d159f37d26ee..894d18e6885cb6 100644 --- a/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js +++ b/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js @@ -18,7 +18,7 @@ export default class TagsPageHelper { cy.clickOptionWithTestId("create-tag-modal-create-button"); if (shouldBeSuccessfullyCreated) { - cy.getWithTestId("create-tag-modal").should("not.exist"); + cy.getWithTestId("tag-name-field").should("not.exist"); } else { cy.waitTextVisible("Failed to create tag. An unexpected error occurred"); cy.clickOptionWithTestId("create-tag-modal-cancel-button"); From 32d648345f40825204209974546330ae0afc266c Mon Sep 17 00:00:00 2001 From: Anirudh Reddy Malgari Date: Tue, 28 Oct 2025 11:04:53 -0700 Subject: [PATCH 6/9] retry test --- .../cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js b/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js index 894d18e6885cb6..40d159f37d26ee 100644 --- a/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js +++ b/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js @@ -18,7 +18,7 @@ export default class TagsPageHelper { cy.clickOptionWithTestId("create-tag-modal-create-button"); if (shouldBeSuccessfullyCreated) { - cy.getWithTestId("tag-name-field").should("not.exist"); + cy.getWithTestId("create-tag-modal").should("not.exist"); } else { cy.waitTextVisible("Failed to create tag. An unexpected error occurred"); cy.clickOptionWithTestId("create-tag-modal-cancel-button"); From 39cc70ded3e5e0625bd06bb6c5c65c93f2410d69 Mon Sep 17 00:00:00 2001 From: Anirudh Reddy Malgari Date: Tue, 28 Oct 2025 11:55:12 -0700 Subject: [PATCH 7/9] fix CI test --- .../cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js b/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js index 40d159f37d26ee..d89ce72cd6b257 100644 --- a/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js +++ b/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js @@ -18,7 +18,8 @@ export default class TagsPageHelper { cy.clickOptionWithTestId("create-tag-modal-create-button"); if (shouldBeSuccessfullyCreated) { - cy.getWithTestId("create-tag-modal").should("not.exist"); + // Wait for modal to close - check that add button is available again + cy.getWithTestId("add-tag-button").should("be.visible"); } else { cy.waitTextVisible("Failed to create tag. An unexpected error occurred"); cy.clickOptionWithTestId("create-tag-modal-cancel-button"); From 1e33705b6b695634b86aa34207226a1dbbbe4e65 Mon Sep 17 00:00:00 2001 From: Anirudh Reddy Malgari Date: Tue, 28 Oct 2025 12:54:09 -0700 Subject: [PATCH 8/9] Fixed more CI cypress failures --- .../cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js b/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js index d89ce72cd6b257..de23823f38dce0 100644 --- a/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js +++ b/smoke-test/tests/cypress/cypress/e2e/manage_tagsV2/helpers/tags_page_helper.js @@ -21,7 +21,8 @@ export default class TagsPageHelper { // Wait for modal to close - check that add button is available again cy.getWithTestId("add-tag-button").should("be.visible"); } else { - cy.waitTextVisible("Failed to create tag. An unexpected error occurred"); + // Wait for any error message that starts with "Failed to create tag." + cy.contains(/Failed to create tag\./).should("be.visible"); cy.clickOptionWithTestId("create-tag-modal-cancel-button"); } } From 5bed1ea115951fea5139863639d5bde2e81c98ba Mon Sep 17 00:00:00 2001 From: Anirudh Reddy Malgari Date: Tue, 28 Oct 2025 15:45:07 -0700 Subject: [PATCH 9/9] fixed another test with timezone change --- datahub-frontend/test/app/ApplicationTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/datahub-frontend/test/app/ApplicationTest.java b/datahub-frontend/test/app/ApplicationTest.java index 77fda774a78e1c..8b5827b2596f97 100644 --- a/datahub-frontend/test/app/ApplicationTest.java +++ b/datahub-frontend/test/app/ApplicationTest.java @@ -940,12 +940,12 @@ public void testHappyPathOidc() throws ParseException { assertEquals(TEST_USER, data.get("actor")); // Default expiration is 24h, so should always be less than current time + 1 day since it stamps // the time before this executes. Use a more generous tolerance to account for timezone - // differences - // and test execution time variations. + // differences, DST transitions, and test execution time variations. + // Increased tolerance to 22-26 hours to handle DST transitions (which can cause 1-hour shifts) Date maxExpectedExpiration = - new Date(System.currentTimeMillis() + (25 * 60 * 60 * 1000)); // 25 hours + new Date(System.currentTimeMillis() + (26 * 60 * 60 * 1000)); // 26 hours Date minExpectedExpiration = - new Date(System.currentTimeMillis() + (23 * 60 * 60 * 1000)); // 23 hours + new Date(System.currentTimeMillis() + (22 * 60 * 60 * 1000)); // 22 hours Date actualExpiration = claims.getExpirationTime(); assertTrue(