36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { i18n } from '@vben/locales';
|
|
|
|
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
|
|
import enSystem from '#/locales/langs/en-US/system.json';
|
|
import zhSystem from '#/locales/langs/zh-CN/system.json';
|
|
|
|
const testLocales = ['network-en-US', 'network-zh-CN'];
|
|
|
|
afterEach(() => {
|
|
vi.restoreAllMocks();
|
|
for (const locale of testLocales) {
|
|
i18n.global.setLocaleMessage(locale, {});
|
|
}
|
|
});
|
|
|
|
describe.each([
|
|
['network-en-US', enSystem.network],
|
|
['network-zh-CN', zhSystem.network],
|
|
])('network locale message syntax: %s', (locale, networkMessages) => {
|
|
it('compiles every message through the production i18n runtime', () => {
|
|
const consoleError = vi
|
|
.spyOn(console, 'error')
|
|
.mockImplementation(() => {});
|
|
i18n.global.setLocaleMessage(locale, {
|
|
system: { network: networkMessages },
|
|
});
|
|
i18n.global.locale.value = locale;
|
|
|
|
for (const key of Object.keys(networkMessages)) {
|
|
i18n.global.t(`system.network.${key}`);
|
|
}
|
|
expect(consoleError).not.toHaveBeenCalled();
|
|
});
|
|
});
|