All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.js.tests.ModelBuilder.ObjectDefinitionNode.ObjectDefinitionNodeHeader.spec.tsx Maven / Gradle / Ivy

The newest version!
/**
 * SPDX-FileCopyrightText: (c) 2024 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

import '@testing-library/jest-dom/extend-expect';
import {render} from '@testing-library/react';
import React from 'react';

import ObjectDefinitionNodeHeader from '../../../components/ModelBuilder/ObjectDefinitionNode/ObjectDefinitionNodeHeader';

jest.mock(
	'../../../components/ModelBuilder/ModelBuilderContext/objectFolderContext',
	() => {
		return {
			useObjectFolderContext() {
				return [{}, jest.fn()];
			},
		};
	}
);

jest.mock('react-flow-renderer', () => {
	return {
		useStore() {
			return {
				edges: [],
				nodes: [],
			};
		},
	};
});

describe('Object Definition Node Header', () => {
	afterAll(() => {
		window.Liferay.FeatureFlags['LPD-34594'] = false;
	});

	beforeAll(() => {
		window.Liferay.FeatureFlags['LPD-34594'] = true;
	});

	it('has root object label when it is a parent', () => {
		render(
			 {}}
				isLinkedObjectDefinition={false}
				isRootDescendantNode={false}
				isRootNode={true}
				objectDefinitionLabel="Parent Object Definition"
				status={{code: 0, label: 'approved', label_i18n: 'Approved'}}
				system={false}
			/>
		);

		const [objecDefinitionNodeInheritanceLabel] =
			document.getElementsByClassName('label-inverse-info');

		expect(objecDefinitionNodeInheritanceLabel).toBeVisible();
		expect(objecDefinitionNodeInheritanceLabel).toHaveTextContent(
			'root-object'
		);
	});

	it('has inherited object label when it is a child', () => {
		render(
			 {}}
				isLinkedObjectDefinition={false}
				isRootDescendantNode={true}
				isRootNode={false}
				objectDefinitionLabel="Child Object Definition"
				status={{code: 0, label: 'approved', label_i18n: 'Approved'}}
				system={false}
			/>
		);

		const [objecDefinitionNodeInheritanceLabel] =
			document.getElementsByClassName('label-inverse-info');

		expect(objecDefinitionNodeInheritanceLabel).toBeVisible();
		expect(objecDefinitionNodeInheritanceLabel).toHaveTextContent(
			'inherited'
		);
	});

	it('has standard object label when it is not in a tree structure', () => {
		render(
			 {}}
				isLinkedObjectDefinition={false}
				isRootDescendantNode={false}
				isRootNode={false}
				objectDefinitionLabel="Standard Object Definition"
				status={{code: 0, label: 'approved', label_i18n: 'Approved'}}
				system={false}
			/>
		);

		const [objecDefinitionNodeInheritanceLabel] =
			document.getElementsByClassName('label-inverse-secondary');

		expect(objecDefinitionNodeInheritanceLabel).toBeVisible();
		expect(objecDefinitionNodeInheritanceLabel).toHaveTextContent(
			'standard'
		);
	});
});




© 2015 - 2025 Weber Informatics LLC | Privacy Policy