Files
MyGoNavi/frontend/src/components/SidebarExternalSqlModal.i18n.test.ts
tianqijiuyun-latiao 9364c48ef0 feat(i18n): 完善多模块多语言适配与发版验证
扩展前后端多语言文案与共享词典。增加多模块 i18n 回归测试与 guard。收口外部 SQL 菜单和弹窗多语言文案。
2026-06-17 13:17:33 +08:00

55 lines
2.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { readFileSync } from 'node:fs';
import { describe, expect, it } from 'vitest';
const source = readFileSync(new URL('./Sidebar.tsx', import.meta.url), 'utf8');
const modalOpenIndex = source.indexOf('open={isExternalSQLFileModalOpen}');
const modalStart = source.lastIndexOf('<Modal', modalOpenIndex);
const modalEnd = source.indexOf('title={renderSidebarModalTitle(<TableOutlined />', modalOpenIndex);
const externalSqlModalBlock = source.slice(modalStart, modalEnd);
describe('Sidebar external SQL file modal i18n', () => {
it('localizes external SQL create and rename modal chrome without translating names or paths', () => {
[
"'新建 SQL 文件'",
"'重命名 SQL 文件'",
"'新建目录'",
"'重命名目录'",
"? '新建' : '重命名'",
'cancelText="取消"',
"? '目录名' : 'SQL 文件名'",
"'请输入目录名'",
"'请输入 SQL 文件名'",
"'目录名不能包含路径分隔符'",
"'文件名不能包含路径分隔符'",
"'目录只会显示在外部 SQL 目录树中,非 SQL 文件仍不会显示'",
"'不输入 .sql 后缀时会自动补齐'",
"'例如reports'",
"'例如report.sql'",
].forEach((snippet) => {
expect(externalSqlModalBlock).not.toContain(snippet);
});
[
'sidebar.external_sql_modal.title.create_file',
'sidebar.external_sql_modal.title.rename_file',
'sidebar.external_sql_modal.title.create_directory',
'sidebar.external_sql_modal.title.rename_directory',
'sidebar.external_sql_modal.action.create',
'sidebar.external_sql_modal.action.rename',
'common.cancel',
'sidebar.external_sql_modal.field.directory_name',
'sidebar.external_sql_modal.field.sql_file_name',
'sidebar.external_sql_modal.validation.directory_name_required',
'sidebar.external_sql_modal.validation.sql_file_name_required',
'sidebar.external_sql_modal.validation.directory_name_no_separator',
'sidebar.external_sql_modal.validation.sql_file_name_no_separator',
'sidebar.external_sql_modal.help.directory',
'sidebar.external_sql_modal.help.sql_file',
'sidebar.external_sql_modal.placeholder.directory_name',
'sidebar.external_sql_modal.placeholder.sql_file_name',
].forEach((key) => {
expect(externalSqlModalBlock).toContain(key);
});
});
});