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

META-INF.resources.js.tests.ObjectField.TranslationOptionsContainer.spec.tsx Maven / Gradle / Ivy

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

import React from 'react';

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

import {TranslationOptionsContainer} from '../../components/ObjectField/Tabs/BasicInfo/TranslationOptionsContainer';

const mockLearnResources = {
	'object-web': {
		'localizing-object-definitions-and-entries': {
			en_US: {
				message: 'Learn more.',
				url: 'https://learn.liferay.com',
			},
		},
	},
};

const defaultProps = {
	learnResources: mockLearnResources,
	published: false,
	setValues: jest.fn(),
	values: {},
};

const alertIsRendered = () => {
	expect(screen.getByText('info:')).toBeInTheDocument();

	expect(
		screen.getByText('this-field-type-does-not-support-translations')
	).toBeInTheDocument();

	expect(screen.getByText('Learn more.')).toBeInTheDocument();
};

const alertNotRendered = () => {
	expect(
		screen.queryByText('this-field-type-does-not-support-translations')
	).toBeNull();
};

const renderComponent = (props = {}) => {
	render();
};

describe('When the feature flag LPD-32050 is enabled', () => {
	beforeAll(() => {
		global.Liferay = {
			...global.Liferay,
			FeatureFlags: {
				...global.Liferay?.FeatureFlags,
				'LPD-32050': true,
			},
		};
	});

	test.each`
		businessType             | system   | shouldRenderAlert
		${'Aggregation'}         | ${false} | ${'render'}
		${'Attachment'}          | ${false} | ${'not render'}
		${'AutoIncrement'}       | ${false} | ${'render'}
		${'Boolean'}             | ${false} | ${'not render'}
		${'Date'}                | ${false} | ${'not render'}
		${'DateTime'}            | ${false} | ${'not render'}
		${'Decimal'}             | ${false} | ${'not render'}
		${'Encrypted'}           | ${false} | ${'render'}
		${'Formula'}             | ${false} | ${'render'}
		${'Integer'}             | ${false} | ${'not render'}
		${'LongInteger'}         | ${false} | ${'not render'}
		${'LongText'}            | ${false} | ${'not render'}
		${'MultiselectPicklist'} | ${false} | ${'not render'}
		${'RichText'}            | ${false} | ${'not render'}
		${'Picklist'}            | ${false} | ${'not render'}
		${'PrecisionDecimal'}    | ${false} | ${'not render'}
		${'Text'}                | ${false} | ${'not render'}
		${'Aggregation'}         | ${true}  | ${'render'}
		${'Attachment'}          | ${true}  | ${'render'}
		${'AutoIncrement'}       | ${true}  | ${'render'}
		${'Boolean'}             | ${true}  | ${'render'}
		${'Date'}                | ${true}  | ${'render'}
		${'DateTime'}            | ${true}  | ${'render'}
		${'Decimal'}             | ${true}  | ${'render'}
		${'Encrypted'}           | ${true}  | ${'render'}
		${'Formula'}             | ${true}  | ${'render'}
		${'Integer'}             | ${true}  | ${'render'}
		${'LongInteger'}         | ${true}  | ${'render'}
		${'LongText'}            | ${true}  | ${'render'}
		${'MultiselectPicklist'} | ${true}  | ${'render'}
		${'RichText'}            | ${true}  | ${'render'}
		${'Picklist'}            | ${true}  | ${'render'}
		${'PrecisionDecimal'}    | ${true}  | ${'render'}
		${'Text'}                | ${true}  | ${'render'}
	`(
		'the object field $businessType system $system should $shouldRenderAlert the translation alert',
		({businessType, shouldRenderAlert, system}) => {
			renderComponent({values: {businessType, system}});

			if (shouldRenderAlert === 'render') {
				alertIsRendered();
			}
			else {
				alertNotRendered();
			}
		}
	);
});

describe('When the feature flag LPD-32050 is disabled', () => {
	beforeAll(() => {
		global.Liferay = {
			...global.Liferay,
			FeatureFlags: {
				...global.Liferay?.FeatureFlags,
				'LPD-32050': false,
			},
		};
	});

	test.each`
		businessType             | system   | shouldRenderAlert
		${'Aggregation'}         | ${false} | ${'render'}
		${'Attachment'}          | ${false} | ${'render'}
		${'AutoIncrement'}       | ${false} | ${'render'}
		${'Boolean'}             | ${false} | ${'render'}
		${'Date'}                | ${false} | ${'render'}
		${'DateTime'}            | ${false} | ${'render'}
		${'Decimal'}             | ${false} | ${'render'}
		${'Encrypted'}           | ${false} | ${'render'}
		${'Formula'}             | ${false} | ${'render'}
		${'Integer'}             | ${false} | ${'render'}
		${'LongInteger'}         | ${false} | ${'render'}
		${'LongText'}            | ${false} | ${'not render'}
		${'MultiselectPicklist'} | ${false} | ${'render'}
		${'RichText'}            | ${false} | ${'not render'}
		${'Picklist'}            | ${false} | ${'render'}
		${'PrecisionDecimal'}    | ${false} | ${'render'}
		${'Text'}                | ${false} | ${'not render'}
		${'Aggregation'}         | ${true}  | ${'render'}
		${'Attachment'}          | ${true}  | ${'render'}
		${'AutoIncrement'}       | ${true}  | ${'render'}
		${'Boolean'}             | ${true}  | ${'render'}
		${'Date'}                | ${true}  | ${'render'}
		${'DateTime'}            | ${true}  | ${'render'}
		${'Decimal'}             | ${true}  | ${'render'}
		${'Encrypted'}           | ${true}  | ${'render'}
		${'Formula'}             | ${true}  | ${'render'}
		${'Integer'}             | ${true}  | ${'render'}
		${'LongInteger'}         | ${true}  | ${'render'}
		${'LongText'}            | ${true}  | ${'render'}
		${'MultiselectPicklist'} | ${true}  | ${'render'}
		${'RichText'}            | ${true}  | ${'render'}
		${'Picklist'}            | ${true}  | ${'render'}
		${'PrecisionDecimal'}    | ${true}  | ${'render'}
		${'Text'}                | ${true}  | ${'render'}
	`(
		'the object field $businessType system $system should $shouldRenderAlert the translation alert',
		({businessType, shouldRenderAlert, system}) => {
			renderComponent({values: {businessType, system}});

			if (shouldRenderAlert === 'render') {
				alertIsRendered();
			}
			else {
				alertNotRendered();
			}
		}
	);
});




© 2015 - 2025 Weber Informatics LLC | Privacy Policy