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