Skip to content

Commit 4f8e722

Browse files
authored
Fixed the component re-rendering issue which causes the Entity test failure (#27355)
* Fixed the component re-rendering issue which causes the Entity test failures * fixed DataAssetsTest * fixed loading issue
1 parent bb0daa1 commit 4f8e722

3 files changed

Lines changed: 32 additions & 12 deletions

File tree

openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataAssetRulesDisabled.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,19 +196,19 @@ test.describe(
196196
).toBeVisible();
197197

198198
await page
199-
.getByTestId('select-owner-tabs')
199+
.getByRole('tabpanel', { name: /Users/ })
200200
.getByTestId('loader')
201-
.waitFor({ state: 'detached' });
201+
.waitFor({ state: 'hidden' });
202202

203203
await page
204204
.locator("[data-testid='select-owner-tabs']")
205205
.getByRole('tab', { name: 'Teams' })
206206
.click();
207207

208208
await page
209-
.getByTestId('select-owner-tabs')
209+
.getByRole('tabpanel', { name: 'Teams' })
210210
.getByTestId('loader')
211-
.waitFor({ state: 'detached' });
211+
.waitFor({ state: 'hidden' });
212212

213213
const teamsSearchBar = page.getByTestId(
214214
'owner-select-teams-search-bar'

openmetadata-ui/src/main/resources/ui/playwright/utils/common.ts

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -245,9 +245,16 @@ export const assignDomain = async (
245245
await waitForAllLoadersToDisappear(page);
246246

247247
if (checkSelectedDomain) {
248-
await expect(page.getByTestId('domain-link')).toContainText(
249-
domain.displayName
250-
);
248+
const hasMultipleDomains = await page
249+
.getByTestId('domain-count-button')
250+
.isVisible();
251+
if (hasMultipleDomains) {
252+
await expect(page.getByTestId('domain-count-button')).toBeVisible();
253+
} else {
254+
await expect(page.getByTestId('domain-link')).toContainText(
255+
domain.displayName
256+
);
257+
}
251258
}
252259
};
253260

@@ -422,9 +429,17 @@ export const assignDataProduct = async (
422429
action: 'Add' | 'Edit' = 'Add',
423430
parentId = 'KnowledgePanel.DataProducts'
424431
) => {
425-
await expect(page.getByTestId('domain-link')).toContainText(
426-
domain.displayName
427-
);
432+
const hasMultipleDomains = await page
433+
.getByTestId('domain-count-button')
434+
.isVisible();
435+
if (hasMultipleDomains) {
436+
await expect(page.getByTestId('domain-count-button')).toBeVisible();
437+
} else {
438+
await expect(page.getByTestId('domain-link')).toContainText(
439+
domain.displayName
440+
);
441+
}
442+
428443
await page
429444
.getByTestId(parentId)
430445
.getByTestId('data-products-container')

openmetadata-ui/src/main/resources/ui/src/components/common/EntitySelectableList/EntitySelectableList.component.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* limitations under the License.
1212
*/
1313
import { Popover } from 'antd';
14-
import { useState } from 'react';
14+
import { useMemo, useState } from 'react';
1515
import { ADD_USER_CONTAINER_HEIGHT } from '../../../constants/constants';
1616
import { EntityReference } from '../../../generated/entity/data/table';
1717
import { FocusTrapWithContainer } from '../FocusTrap/FocusTrapWithContainer';
@@ -30,6 +30,11 @@ export const EntitySelectableList = <T,>({
3030
}: EntitySelectableListProps<T>) => {
3131
const [popupVisible, setPopupVisible] = useState(false);
3232

33+
const selectedItemsAsEntityReferences = useMemo(
34+
() => config.toEntityReference(selectedItems),
35+
[selectedItems, config.toEntityReference]
36+
);
37+
3338
const handleUpdate = async (updateItems: EntityReference[]) => {
3439
const convertedItems = config.fromEntityReference(updateItems);
3540
await onUpdate(convertedItems);
@@ -49,7 +54,7 @@ export const EntitySelectableList = <T,>({
4954
multiSelect={multiSelect}
5055
searchBarDataTestId={config.searchBarDataTestId}
5156
searchPlaceholder={config.searchPlaceholder}
52-
selectedItems={config.toEntityReference(selectedItems)}
57+
selectedItems={selectedItemsAsEntityReferences}
5358
onCancel={onCancel}
5459
onUpdate={handleUpdate}
5560
/>

0 commit comments

Comments
 (0)