diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainTabs/DocumentationTab/DocumentationTab.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainTabs/DocumentationTab/DocumentationTab.component.tsx index 68b4bfb9056..17624911fa4 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainTabs/DocumentationTab/DocumentationTab.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainTabs/DocumentationTab/DocumentationTab.component.tsx @@ -141,7 +141,11 @@ const DocumentationTab = ({ wrapInCard description={description} entityName={getEntityName(domain)} - entityType={EntityType.DOMAIN} + entityType={ + type === DocumentationEntity.DOMAIN + ? EntityType.DOMAIN + : EntityType.DATA_PRODUCT + } hasEditAccess={editDescriptionPermission} showCommentsIcon={false} onDescriptionUpdate={onDescriptionUpdate} @@ -159,7 +163,7 @@ const DocumentationTab = ({ newLook displayType={DisplayType.READ_MORE} entityFqn={domain.fullyQualifiedName} - entityType={EntityType.DOMAIN} + entityType={resourceType} permission={editTagsPermission} selectedTags={domain.tags ?? []} showTaskHandler={false} @@ -173,7 +177,7 @@ const DocumentationTab = ({ newLook displayType={DisplayType.READ_MORE} entityFqn={domain.fullyQualifiedName} - entityType={EntityType.DOMAIN} + entityType={resourceType} permission={editGlossaryTermsPermission} selectedTags={domain.tags ?? []} showTaskHandler={false} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainTabs/DocumentationTab/DocumentationTab.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainTabs/DocumentationTab/DocumentationTab.test.tsx index 0d7e9a99b32..4e354737b26 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainTabs/DocumentationTab/DocumentationTab.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainTabs/DocumentationTab/DocumentationTab.test.tsx @@ -12,9 +12,10 @@ */ import { render, screen } from '@testing-library/react'; import { MemoryRouter } from 'react-router-dom'; +import { EntityType } from '../../../../enums/entity.enum'; import { MOCK_DOMAIN } from '../../../../mocks/Domains.mock'; import { MOCK_PERMISSIONS } from '../../../../mocks/Glossary.mock'; -import DocumentationTab from './DocumentationTab.component'; +import { DocumentationEntity } from './DocumentationTab.interface'; // Mock the onUpdate function const mockOnUpdate = jest.fn(); @@ -26,9 +27,13 @@ const defaultProps = { permissions: MOCK_PERMISSIONS, }; -jest.mock('../../../common/EntityDescription/DescriptionV1', () => { - return jest.fn().mockImplementation(() =>
DescriptionV1
); -}); +const mockDescriptionV1 = jest + .fn() + .mockImplementation(() =>
DescriptionV1
); +jest.mock( + '../../../common/EntityDescription/DescriptionV1', + () => mockDescriptionV1 +); jest.mock('../../../common/ProfilePicture/ProfilePicture', () => jest.fn().mockReturnValue(<>ProfilePicture) @@ -37,6 +42,7 @@ jest.mock('../../../common/ProfilePicture/ProfilePicture', () => jest.mock('../../../Customization/GenericProvider/GenericProvider', () => ({ useGenericContext: jest.fn().mockReturnValue({ data: MOCK_DOMAIN, + onUpdate: mockOnUpdate, permissions: { ViewAll: true, EditAll: true, @@ -78,7 +84,23 @@ jest.mock('../../DomainTypeWidget/DomainTypeWidget', () => ({ .mockImplementation(() =>
DomainTypeWidget
), })); +jest.mock('../../../common/ResizablePanels/ResizablePanels', () => + jest.fn().mockImplementation(({ firstPanel, secondPanel }) => ( +
+
{firstPanel.children}
+
{secondPanel.children}
+
+ )) +); + +// Import after mocks are set up +import DocumentationTab from './DocumentationTab.component'; + describe('DocumentationTab', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + it('should render the initial content', () => { render(, { wrapper: MemoryRouter, @@ -93,4 +115,43 @@ describe('DocumentationTab', () => { expect(screen.getByText('DomainTypeWidget')).toBeInTheDocument(); }); + + it('should pass DOMAIN entityType to DescriptionV1 when type is DOMAIN', () => { + render(, { + wrapper: MemoryRouter, + }); + + expect(mockDescriptionV1).toHaveBeenCalledWith( + expect.objectContaining({ + entityType: EntityType.DOMAIN, + }), + expect.any(Object) + ); + }); + + it('should pass DATA_PRODUCT entityType to DescriptionV1 when type is DATA_PRODUCT', () => { + render(, { + wrapper: MemoryRouter, + }); + + expect(mockDescriptionV1).toHaveBeenCalledWith( + expect.objectContaining({ + entityType: EntityType.DATA_PRODUCT, + }), + expect.any(Object) + ); + }); + + it('should default to DOMAIN entityType when no type is provided', () => { + render(, { + wrapper: MemoryRouter, + }); + + expect(mockDescriptionV1).toHaveBeenCalledWith( + expect.objectContaining({ + entityType: EntityType.DOMAIN, + }), + expect.any(Object) + ); + }); });