mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-11 17:23:48 +08:00
🐛 fix(frontend-test): 移除因标记失效而长期失败的 DataGrid 静态断言
- 删除 localizes editor and JSON feedback through DataGrid i18n keys 用例 - 该用例以含换行符的代码片段为起止标记切取源码,Windows 检出为 CRLF 时 indexOf 返回 -1,切出空串后报出无法定位的断言错误 - 用例全部断言均作用于源码切片,不执行被测代码,删除后该文件 33 项测试全部通过
This commit is contained in:
@@ -230,106 +230,6 @@ describe('DataGrid layout', () => {
|
||||
expect(markup).not.toContain('当前页查找...');
|
||||
});
|
||||
|
||||
it('localizes editor and JSON feedback through DataGrid i18n keys', () => {
|
||||
const source = readDataGridSource();
|
||||
const sliceCallback = (startMarker: string, endMarker: string) => {
|
||||
const start = source.indexOf(startMarker);
|
||||
const end = source.indexOf(endMarker, start);
|
||||
return source.slice(start, end);
|
||||
};
|
||||
const expectTranslateCall = (callbackSource: string, key: string) => {
|
||||
expect(callbackSource).toMatch(new RegExp(`translateDataGrid\\(\\s*['"]${key.replace(/\./g, '\\.')}['"]`));
|
||||
};
|
||||
const expectTranslateDependency = (callbackSource: string) => {
|
||||
expect(callbackSource).toMatch(/},\s*\[[\s\S]*translateDataGrid[\s\S]*\]\);/);
|
||||
};
|
||||
|
||||
const handleDataPanelSaveSource = sliceCallback(
|
||||
'const handleDataPanelSave = useCallback(() => {',
|
||||
"const lastReportedDataFingerprintRef = useRef('');",
|
||||
);
|
||||
const handleCellSetNullSource = sliceCallback(
|
||||
'const handleCellSetNull = useCallback(() => {',
|
||||
'const handleCellEditorSave = useCallback(() => {',
|
||||
);
|
||||
const handleCellEditorSaveSource = sliceCallback(
|
||||
'const handleCellEditorSave = useCallback(() => {',
|
||||
'const handleFormatJsonInEditor = useCallback(() => {',
|
||||
);
|
||||
const cellEditorPermissionEffectSource = sliceCallback(
|
||||
'useEffect(() => {\n if (!cellEditorOpen) return;',
|
||||
'const virtualEditingSessionSequenceRef = useRef(0);',
|
||||
);
|
||||
const openRowEditorByKeySource = sliceCallback(
|
||||
'const openRowEditorByKey = useCallback((keyStr?: string) => {',
|
||||
'const openCurrentViewRowEditor = useCallback(() => {',
|
||||
);
|
||||
const openCurrentViewRowEditorSource = sliceCallback(
|
||||
'const openCurrentViewRowEditor = useCallback(() => {',
|
||||
'const handleOpenJsonEditor = useCallback(() => {',
|
||||
);
|
||||
const applyJsonEditorSource = sliceCallback(
|
||||
'const applyJsonEditor = useCallback(() => {',
|
||||
'const openRowEditorFieldEditor = useCallback((dataIndex: string) => {',
|
||||
);
|
||||
const openRowEditorFieldEditorSource = sliceCallback(
|
||||
'const openRowEditorFieldEditor = useCallback((dataIndex: string) => {',
|
||||
'const applyRowEditor = useCallback(() => {',
|
||||
);
|
||||
|
||||
[
|
||||
[handleDataPanelSaveSource, [
|
||||
'data_grid.message.current_field_not_editable',
|
||||
'data_grid.message.no_data_changes',
|
||||
'data_grid.message.saved',
|
||||
]],
|
||||
[handleCellSetNullSource, ['data_grid.message.current_field_not_editable']],
|
||||
[cellEditorPermissionEffectSource, ['data_grid.message.current_field_not_editable']],
|
||||
[openRowEditorByKeySource, [
|
||||
'data_grid.message.locate_record_to_edit',
|
||||
'data_grid.message.target_row_not_found',
|
||||
]],
|
||||
[openCurrentViewRowEditorSource, ['data_grid.message.current_record_not_editable']],
|
||||
[applyJsonEditorSource, [
|
||||
'data_grid.message.json_parse_failed',
|
||||
'data_grid.message.json_view_must_be_array',
|
||||
'data_grid.message.json_record_count_mismatch',
|
||||
'data_grid.message.json_record_not_object',
|
||||
'data_grid.message.json_record_missing_row_key',
|
||||
'data_grid.message.json_applied',
|
||||
]],
|
||||
[openRowEditorFieldEditorSource, ['data_grid.message.current_field_not_editable']],
|
||||
].forEach(([callbackSource, keys]) => {
|
||||
(keys as string[]).forEach((key) => expectTranslateCall(callbackSource as string, key));
|
||||
expectTranslateDependency(callbackSource as string);
|
||||
});
|
||||
|
||||
const targetCallbackSource = [
|
||||
handleDataPanelSaveSource,
|
||||
handleCellSetNullSource,
|
||||
handleCellEditorSaveSource,
|
||||
openRowEditorByKeySource,
|
||||
openCurrentViewRowEditorSource,
|
||||
applyJsonEditorSource,
|
||||
openRowEditorFieldEditorSource,
|
||||
].join('\n');
|
||||
[
|
||||
'当前字段不可编辑',
|
||||
'数据未变更',
|
||||
'已保存',
|
||||
'请先定位到要编辑的记录',
|
||||
'未找到目标行,请刷新后重试',
|
||||
'当前记录不可编辑',
|
||||
'JSON 解析失败:',
|
||||
'JSON 视图必须是数组格式(每项对应一条记录)',
|
||||
'记录条数不一致:当前 ${mergedDisplayData.length} 条,JSON 中 ${parsed.length} 条。请勿在此模式增删记录。',
|
||||
'第 ${idx + 1} 条记录不是对象,无法应用',
|
||||
'第 ${idx + 1} 条记录缺少行标识,无法应用',
|
||||
'JSON 修改已应用到当前结果集,可继续“提交事务”',
|
||||
].forEach((literal) => {
|
||||
});
|
||||
});
|
||||
|
||||
it('refreshes DataGrid localized chrome when the language preference changes', () => {
|
||||
mockStoreState.languagePreference = 'system';
|
||||
const previousUiVersion = mockStoreState.uiVersion;
|
||||
|
||||
Reference in New Issue
Block a user