2025-02-12 10:23:07 -08:00
|
|
|
import { GenericEntityProperties } from '@app/entity/shared/types';
|
2025-07-11 17:08:52 -07:00
|
|
|
import { getParentEntities } from '@app/entityV2/shared/containers/profile/header/getParentEntities';
|
2025-02-12 10:23:07 -08:00
|
|
|
import { dataPlatform } from '@src/Mocks';
|
2025-04-16 16:55:38 -07:00
|
|
|
|
2025-09-19 17:09:52 -04:00
|
|
|
import { DataProduct, EntityType } from '@types';
|
2025-02-12 10:23:07 -08:00
|
|
|
|
|
|
|
const PARENT_CONTAINERS: GenericEntityProperties['parentContainers'] = {
|
|
|
|
containers: [
|
|
|
|
{
|
|
|
|
urn: 'urn:li:container:1',
|
|
|
|
type: EntityType.Container,
|
|
|
|
platform: dataPlatform,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
urn: 'urn:li:container:2',
|
|
|
|
type: EntityType.Container,
|
|
|
|
platform: dataPlatform,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
count: 2,
|
|
|
|
};
|
|
|
|
|
|
|
|
const PARENT_DOMAINS: GenericEntityProperties['parentDomains'] = {
|
|
|
|
domains: [
|
|
|
|
{ urn: 'urn:li:domain:1', type: EntityType.Domain },
|
|
|
|
{ urn: 'urn:li:domain:2', type: EntityType.Domain },
|
|
|
|
],
|
|
|
|
count: 2,
|
|
|
|
};
|
|
|
|
|
|
|
|
const PARENT_NODES: GenericEntityProperties['parentNodes'] = {
|
|
|
|
nodes: [
|
|
|
|
{ urn: 'urn:li:glossaryNode:1', type: EntityType.GlossaryNode },
|
|
|
|
{
|
|
|
|
urn: 'urn:li:glossaryNode:2',
|
|
|
|
type: EntityType.GlossaryNode,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
count: 2,
|
|
|
|
};
|
|
|
|
|
|
|
|
const PARENT: GenericEntityProperties = {
|
|
|
|
urn: 'urn:li:dataset:(urn:li:dataPlatform:snowflake,name,PROD)',
|
|
|
|
type: EntityType.Dataset,
|
|
|
|
platform: dataPlatform,
|
|
|
|
};
|
|
|
|
|
2025-09-19 17:09:52 -04:00
|
|
|
const dataProduct: DataProduct = {
|
|
|
|
urn: 'urn:li:dataProduct:test',
|
|
|
|
type: EntityType.DataProduct,
|
|
|
|
domain: {
|
|
|
|
associatedUrn: '',
|
|
|
|
domain: {
|
|
|
|
urn: 'urn:li:domain:bebdad41-c523-469f-9b62-de94f938f603',
|
|
|
|
id: 'bebdad41-c523-469f-9b62-de94f938f603',
|
|
|
|
type: EntityType.Domain,
|
|
|
|
parentDomains: PARENT_DOMAINS,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
2025-02-12 10:23:07 -08:00
|
|
|
describe('getContextPath', () => {
|
|
|
|
it('returns empty array by default', () => {
|
|
|
|
const entityData = {};
|
|
|
|
|
2025-07-11 17:08:52 -07:00
|
|
|
const contextPath = getParentEntities(entityData);
|
2025-02-12 10:23:07 -08:00
|
|
|
expect(contextPath).toEqual([]);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('returns correct context path for entity with parent containers', () => {
|
|
|
|
const entityData = {
|
|
|
|
parentContainers: PARENT_CONTAINERS,
|
|
|
|
parentDomains: PARENT_DOMAINS,
|
|
|
|
parentNodes: PARENT_NODES,
|
|
|
|
parent: PARENT,
|
|
|
|
};
|
|
|
|
|
2025-07-11 17:08:52 -07:00
|
|
|
const contextPath = getParentEntities(entityData);
|
2025-02-12 10:23:07 -08:00
|
|
|
expect(contextPath).toEqual(PARENT_CONTAINERS.containers);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('returns correct context path for entity with parent domains', () => {
|
|
|
|
const entityData = {
|
|
|
|
parentContainers: null,
|
|
|
|
parentDomains: PARENT_DOMAINS,
|
|
|
|
parentNodes: PARENT_NODES,
|
|
|
|
parent: PARENT,
|
|
|
|
};
|
|
|
|
|
2025-07-11 17:08:52 -07:00
|
|
|
const contextPath = getParentEntities(entityData);
|
2025-02-12 10:23:07 -08:00
|
|
|
expect(contextPath).toEqual(PARENT_DOMAINS.domains);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('returns correct context path for entity with parent nodes', () => {
|
|
|
|
const entityData = {
|
|
|
|
parentContainers: null,
|
|
|
|
parentDomains: null,
|
|
|
|
parentNodes: PARENT_NODES,
|
|
|
|
parent: PARENT,
|
|
|
|
};
|
|
|
|
|
2025-07-11 17:08:52 -07:00
|
|
|
const contextPath = getParentEntities(entityData);
|
2025-02-12 10:23:07 -08:00
|
|
|
expect(contextPath).toEqual(PARENT_NODES.nodes);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('returns correct context path for entity with parent', () => {
|
|
|
|
const entityData = {
|
|
|
|
parentContainers: null,
|
|
|
|
parentDomains: null,
|
|
|
|
parentNodes: null,
|
|
|
|
parent: PARENT,
|
|
|
|
};
|
|
|
|
|
2025-07-11 17:08:52 -07:00
|
|
|
const contextPath = getParentEntities(entityData);
|
2025-02-12 10:23:07 -08:00
|
|
|
expect(contextPath).toEqual([PARENT]);
|
|
|
|
});
|
2025-09-19 17:09:52 -04:00
|
|
|
|
|
|
|
it('returns correct context path for data products', () => {
|
|
|
|
const entityData = dataProduct;
|
|
|
|
|
|
|
|
const contextPath = getParentEntities(entityData, EntityType.DataProduct);
|
|
|
|
expect(contextPath).toEqual([
|
|
|
|
dataProduct.domain?.domain,
|
|
|
|
...(dataProduct.domain?.domain?.parentDomains?.domains || []),
|
|
|
|
]);
|
|
|
|
});
|
2025-02-12 10:23:07 -08:00
|
|
|
});
|