fix: avoid translating dynamic standard override labels
Authored via Sonarly Slack mention (run 42726).
This commit is contained in:
+46
@@ -385,6 +385,52 @@ describe('resolveFieldMetadataStandardOverride', () => {
|
||||
|
||||
expect(result).toBe('Standard Label');
|
||||
});
|
||||
|
||||
it('should return original field value without calling i18n when message is not compiled', () => {
|
||||
const fieldMetadata = {
|
||||
label: 'Dynamic Field Label',
|
||||
description: 'Standard Description',
|
||||
icon: 'default-icon',
|
||||
isCustom: false,
|
||||
standardOverrides: undefined,
|
||||
};
|
||||
|
||||
mockGenerateMessageId.mockReturnValue('missing.message.id');
|
||||
mockI18n.messages = {};
|
||||
|
||||
const result = resolveFieldMetadataStandardOverride(
|
||||
fieldMetadata,
|
||||
'label',
|
||||
'fr-FR',
|
||||
mockI18n,
|
||||
);
|
||||
|
||||
expect(result).toBe('Dynamic Field Label');
|
||||
expect(mockI18n._).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should return original field value without calling i18n when message is not compiled', () => {
|
||||
const fieldMetadata = {
|
||||
label: 'Dynamic Field Label',
|
||||
description: 'Standard Description',
|
||||
icon: 'default-icon',
|
||||
isCustom: false,
|
||||
standardOverrides: undefined,
|
||||
};
|
||||
|
||||
mockGenerateMessageId.mockReturnValue('missing.message.id');
|
||||
mockI18n.messages = {};
|
||||
|
||||
const result = resolveFieldMetadataStandardOverride(
|
||||
fieldMetadata,
|
||||
'label',
|
||||
'fr-FR',
|
||||
mockI18n,
|
||||
);
|
||||
|
||||
expect(result).toBe('Dynamic Field Label');
|
||||
expect(mockI18n._).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Priority order - Standard fields', () => {
|
||||
|
||||
+8
@@ -44,6 +44,14 @@ export const resolveFieldMetadataStandardOverride = (
|
||||
|
||||
const messageId = generateMessageId(fieldMetadata[labelKey] ?? '');
|
||||
|
||||
const isMessageCompiled =
|
||||
!isDefined(i18nInstance.messages) ||
|
||||
isDefined(i18nInstance.messages[messageId]);
|
||||
|
||||
if (!isMessageCompiled) {
|
||||
return fieldMetadata[labelKey] ?? '';
|
||||
}
|
||||
|
||||
const translatedMessage = i18nInstance._(messageId);
|
||||
|
||||
if (translatedMessage === messageId) {
|
||||
|
||||
+48
@@ -503,6 +503,54 @@ describe('resolveObjectMetadataStandardOverride', () => {
|
||||
|
||||
expect(result).toBe('Standard Label');
|
||||
});
|
||||
|
||||
it('should return original object value without calling i18n when message is not compiled', () => {
|
||||
const objectMetadata = {
|
||||
labelSingular: 'Dynamic Override Label',
|
||||
labelPlural: 'Standard Labels',
|
||||
description: 'Standard Description',
|
||||
icon: 'default-icon',
|
||||
isCustom: false,
|
||||
standardOverrides: undefined,
|
||||
};
|
||||
|
||||
mockGenerateMessageId.mockReturnValue('missing.message.id');
|
||||
mockI18n.messages = {};
|
||||
|
||||
const result = resolveObjectMetadataStandardOverride(
|
||||
objectMetadata,
|
||||
'labelSingular',
|
||||
'fr-FR',
|
||||
mockI18n,
|
||||
);
|
||||
|
||||
expect(result).toBe('Dynamic Override Label');
|
||||
expect(mockI18n._).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should return original object value without calling i18n when message is not compiled', () => {
|
||||
const objectMetadata = {
|
||||
labelSingular: 'Dynamic Override Label',
|
||||
labelPlural: 'Standard Labels',
|
||||
description: 'Standard Description',
|
||||
icon: 'default-icon',
|
||||
isCustom: false,
|
||||
standardOverrides: undefined,
|
||||
};
|
||||
|
||||
mockGenerateMessageId.mockReturnValue('missing.message.id');
|
||||
mockI18n.messages = {};
|
||||
|
||||
const result = resolveObjectMetadataStandardOverride(
|
||||
objectMetadata,
|
||||
'labelSingular',
|
||||
'fr-FR',
|
||||
mockI18n,
|
||||
);
|
||||
|
||||
expect(result).toBe('Dynamic Override Label');
|
||||
expect(mockI18n._).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Priority order - Standard objects', () => {
|
||||
|
||||
+9
@@ -52,6 +52,15 @@ export const resolveObjectMetadataStandardOverride = (
|
||||
}
|
||||
|
||||
const messageId = generateMessageId(objectMetadata[labelKey] ?? '');
|
||||
|
||||
const isMessageCompiled =
|
||||
!isDefined(i18nInstance.messages) ||
|
||||
isDefined(i18nInstance.messages[messageId]);
|
||||
|
||||
if (!isMessageCompiled) {
|
||||
return objectMetadata[labelKey] ?? '';
|
||||
}
|
||||
|
||||
const translatedMessage = i18nInstance._(messageId);
|
||||
|
||||
if (translatedMessage === messageId) {
|
||||
|
||||
Reference in New Issue
Block a user