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');
|
});
|
});
|