Files
OpenFlare/frontend/i18n/builtin-metadata.test.ts
T

85 lines
2.5 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import english from '@/messages/fragments/builtin-metadata.en.json';
import chinese from '@/messages/fragments/builtin-metadata.zh-CN.json';
import {
localizeConfigDescription,
localizeTemplateMetadata,
} from './builtin-metadata';
describe('built-in metadata presentation', () => {
it('localizes known descriptions in both directions without changing stored data', () => {
const original = {
key: 'site_name',
description: chinese.builtinMetadata.configDescriptions.site_name,
value: 'My site',
};
expect(
localizeConfigDescription(original.key, original.description, 'en'),
).toBe(english.builtinMetadata.configDescriptions.site_name);
expect(
localizeConfigDescription(original.key, 'Platform display name', 'zh-CN'),
).toBe(original.description);
expect(original.description).toBe(
chinese.builtinMetadata.configDescriptions.site_name,
);
expect(original.value).toBe('My site');
});
it('preserves custom descriptions, edited values and unknown configuration keys', () => {
expect(
localizeConfigDescription('site_name', 'Custom description', 'zh-CN'),
).toBe('Custom description');
expect(localizeConfigDescription('site_name', '', 'en')).toBe('');
expect(
localizeConfigDescription(
'unknown',
chinese.builtinMetadata.configDescriptions.site_name,
'en',
),
).toBe(chinese.builtinMetadata.configDescriptions.site_name);
});
it('only localizes the exact defaults of built-in templates', () => {
const original = chinese.builtinMetadata.templates.login_email;
expect(
localizeTemplateMetadata(
'login_email',
true,
'name',
original.name,
'en',
),
).toBe(english.builtinMetadata.templates.login_email.name);
expect(
localizeTemplateMetadata(
'login_email',
true,
'description',
original.description,
'en',
),
).toBe(english.builtinMetadata.templates.login_email.description);
expect(
localizeTemplateMetadata(
'login_email',
false,
'name',
original.name,
'en',
),
).toBe(original.name);
expect(
localizeTemplateMetadata(
'login_email',
true,
'name',
'My verification email',
'zh-CN',
),
).toBe('My verification email');
expect(
localizeTemplateMetadata('unknown', true, 'name', original.name, 'en'),
).toBe(original.name);
});
});