test: 所有测试适配 PathEntry[] 类型,新增 TOGGLE undo/redo 测试

- undo-redo.test.ts: 所有 11 项测试通过(含新增 TOGGLE 撤销/重做)
- app-store.test.ts: 断言改用 .map(e => e.path),待 Task 5 修复
- import-export.test.ts: sampleData 改用 pe(),导出断言适配
- path-manager.test.ts: 测试数据用 pe() 包裹,待 Task 3 修复
- validation.test.ts: 无需变更(纯 string 接口)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 13:42:21 +08:00
parent 32287c0e4b
commit 914b25f236
4 changed files with 104 additions and 62 deletions
+23 -9
View File
@@ -9,30 +9,41 @@ import {
detectExportFormat,
flattenImportResult,
} from '../../src/core/import-export';
import type { PathEntry } from '../../src/core/path-entry';
function pe(s: string, enabled: boolean = true): PathEntry {
return { path: s, enabled };
}
const sampleData = {
system: ['C:\\Windows', 'C:\\Program Files'],
user: ['C:\\Users\\me\\AppData'],
system: [pe('C:\\Windows'), pe('C:\\Program Files')],
user: [pe('C:\\Users\\me\\AppData')],
};
describe('exportToJson', () => {
it('导出结构化 JSON', () => {
const json = exportToJson(sampleData);
const json = exportToJson({
system: sampleData.system.map(e => e.path),
user: sampleData.user.map(e => e.path),
});
const parsed = JSON.parse(json);
expect(parsed.version).toBe('1.0');
expect(parsed.type).toBe('PathEditor');
expect(parsed.system).toEqual(sampleData.system);
expect(parsed.user).toEqual(sampleData.user);
expect(parsed.system).toEqual(sampleData.system.map(e => e.path));
expect(parsed.user).toEqual(sampleData.user.map(e => e.path));
expect(parsed.exported).toBeDefined();
});
});
describe('importFromJson', () => {
it('正确导入 JSON', () => {
const json = JSON.stringify(sampleData);
const json = JSON.stringify({
system: sampleData.system.map(e => e.path),
user: sampleData.user.map(e => e.path),
});
const result = importFromJson(json);
expect(result.system).toEqual(sampleData.system);
expect(result.user).toEqual(sampleData.user);
expect(result.system).toEqual(sampleData.system.map(e => e.path));
expect(result.user).toEqual(sampleData.user.map(e => e.path));
});
it('过滤空字符串', () => {
@@ -44,7 +55,10 @@ describe('importFromJson', () => {
describe('exportToCsv', () => {
it('导出 CSV 含 BOM', () => {
const csv = exportToCsv(sampleData);
const csv = exportToCsv({
system: sampleData.system.map(e => e.path),
user: sampleData.user.map(e => e.path),
});
expect(csv.startsWith('')).toBe(true);
expect(csv).toContain('type,path');
expect(csv).toContain('system,C:\\Windows');