刘光辉
6 小时以前 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
import type { DmsFileCenterItem } from '#/api/x/dms/fileCenter';
 
import { describe, expect, it } from 'vitest';
 
import { canCompareFile, comparableVersions } from '../compareRules';
 
const file = (id: string, versionNo: number, overrides: Partial<DmsFileCenterItem> = {}): DmsFileCenterItem => ({
  id,
  versionNo,
  documentId: 'doc-1',
  resourceType: 'FILE_VERSION',
  fileName: 'SOP.docx',
  name: 'SOP',
  createdAt: '2026-09-01',
  ...overrides,
});
 
describe('DMS version comparison selection', () => {
  it('enables only selected DOCX versions', () => {
    expect(canCompareFile()).toBe(false);
    expect(canCompareFile(file('1', 1, { resourceType: 'FOLDER' }))).toBe(false);
    expect(canCompareFile(file('1', 1, { fileName: 'SOP.pdf' }))).toBe(false);
    expect(canCompareFile(file('1', 1, { fileName: 'SOP.DOCX' }))).toBe(true);
  });
  it('keeps only older versions of the same document in newest-first order', () => {
    const current = file('v3', 3);
    const input = [file('v1', 1), current, file('other', 1, { documentId: 'other-doc' }), file('v2', 2), file('v4', 4), file('pdf', 1, { fileName: 'a.pdf' })];
    expect(comparableVersions(current, input).map((v) => v.id)).toEqual(['v2', 'v1']);
    expect(input[0]?.id).toBe('v1');
  });
});