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

META-INF.resources.js.tests.ModelBuilder.ObjectDefinitionNode.ObjectDefinitionNodeFields.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 {ObjectDefinitionNodeFields} from '../../../components/ModelBuilder/ObjectDefinitionNode/ObjectDefinitionNodeFields';

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

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

const objectFieldsMock: ObjectFieldNodeRow[] = [
	{
		businessType: 'LongInteger',
		externalReferenceCode: 'objectField1',
		label: {
			en_US: 'objectField1',
		},
		name: 'objectField1',
		primaryKey: false,
		required: false,
		selected: false,
	},
	{
		businessType: 'LongInteger',
		externalReferenceCode: 'objectField2',
		label: {
			en_US: 'objectField2',
		},
		name: 'objectField2',
		primaryKey: false,
		required: false,
		selected: false,
	},
	{
		businessType: 'LongInteger',
		externalReferenceCode: 'objectField3',
		label: {
			en_US: 'objectField3',
		},
		name: 'objectField3',
		primaryKey: false,
		required: false,
		selected: false,
	},
	{
		businessType: 'LongInteger',
		externalReferenceCode: 'objectField4',
		label: {
			en_US: 'objectField4',
		},
		name: 'objectField4',
		primaryKey: false,
		required: false,
		selected: false,
	},
	{
		businessType: 'LongInteger',
		externalReferenceCode: 'objectField5',
		label: {
			en_US: 'objectField5',
		},
		name: 'objectField5',
		primaryKey: false,
		required: false,
		selected: false,
	},
	{
		businessType: 'LongInteger',
		externalReferenceCode: 'objectField6',
		label: {
			en_US: 'objectField6',
		},
		name: 'objectField6',
		primaryKey: false,
		required: false,
		selected: false,
	},
];

describe('ObjectDefinitionNodeFields Component', () => {
	it('check if the object field label and business type will be rendered correctly', () => {
		const {queryByText} = render(
			
		);

		expect(queryByText('ID')).toBeVisible();
		expect(queryByText('long-integer')).toBeVisible();
	});

	it('check if only 5 object fields will be listed if showAllObjectFields property is false', () => {
		const {queryByText} = render(
			
		);

		expect(queryByText('objectField1')).toBeVisible();
		expect(queryByText('objectField2')).toBeVisible();
		expect(queryByText('objectField3')).toBeVisible();
		expect(queryByText('objectField4')).toBeVisible();
		expect(queryByText('objectField5')).toBeVisible();
		expect(queryByText('objectField6')).toBeNull();
	});

	it('check if more than 5 object fields will be listed if showAllObjectFields property is true', () => {
		const {queryByText} = render(
			
		);

		expect(queryByText('objectField1')).toBeVisible();
		expect(queryByText('objectField2')).toBeVisible();
		expect(queryByText('objectField3')).toBeVisible();
		expect(queryByText('objectField4')).toBeVisible();
		expect(queryByText('objectField5')).toBeVisible();
		expect(queryByText('objectField6')).toBeVisible();
	});
});




© 2015 - 2025 Weber Informatics LLC | Privacy Policy