刘光辉
3 小时以前 cf11e63b659afcc9792ab3e395f1b45d844431a8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { describe, expect, it } from 'vitest';
 
import { buildFormMappingRecord, formatRecordDepartmentName } from '../formMappingRecord';
 
describe('form mapping record', () => {
  it('uses the configured step title and converts escaped line breaks', () => {
    const result = buildFormMappingRecord({ nodeName: '旧步骤', fileList: '[]' }, { nodeName: String.raw`部门领导审核\nDepartment Manager`, type: 'approver' });
    expect(result.title).toBe('部门领导审核\nDepartment Manager');
    expect(result.actionLabel).toBe('审核');
  });
 
  it('uses processing labels and keeps attachments', () => {
    const files = [{ name: 'record.pdf' }];
    const result = buildFormMappingRecord({ nodeName: '办理', fileList: JSON.stringify(files) }, { type: 'processing' });
    expect(result.actionLabel).toBe('办理');
    expect(result.fileList).toEqual(files);
  });
 
  it('accepts array attachments and ignores malformed data', () => {
    const files = [{ name: 'record.pdf' }];
    expect(buildFormMappingRecord({ fileList: files }, {}).fileList).toBe(files);
    expect(buildFormMappingRecord({ fileList: '{bad' }, {}).fileList).toEqual([]);
    expect(buildFormMappingRecord({ fileList: '{}' }, {}).fileList).toEqual([]);
  });
 
  it('hides only ancestor root names in mapped approval departments', () => {
    const names = '博思涛/质量中心/质控部、博思涛/研发部、根组织';
    expect(formatRecordDepartmentName(names, 0)).toBe('质量中心/质控部、研发部、根组织');
    expect(formatRecordDepartmentName(names, 1)).toBe(names);
    expect(formatRecordDepartmentName(undefined, 0)).toBe('');
  });
 
  it('shows the last configured levels of each approval department', () => {
    const names = 'A/B/C/D、A/B/E、A';
    expect(formatRecordDepartmentName(names, 0, 2)).toBe('C/D、B/E、A');
    expect(formatRecordDepartmentName(names, 1, 2)).toBe('C/D、B/E、A');
    expect(formatRecordDepartmentName(names, 0, 4)).toBe('B/C/D、B/E、A');
    expect(formatRecordDepartmentName(names, 0, 9)).toBe('B/C/D、B/E、A');
    expect(formatRecordDepartmentName('A/B', 0, 2)).toBe('B');
    expect(formatRecordDepartmentName(names, 0, 0)).toBe('B/C/D、B/E、A');
  });
});