Files
the_order/services/legal-documents/tests/document-versions.test.ts
defiQUG 6a8582e54d feat: comprehensive project structure improvements and Cloud for Sovereignty landing zone
- Add Cloud for Sovereignty landing zone architecture and deployment
- Implement complete legal document management system
- Reorganize documentation with improved navigation
- Add infrastructure improvements (Dockerfiles, K8s, monitoring)
- Add operational improvements (graceful shutdown, rate limiting, caching)
- Create comprehensive project structure documentation
- Add Azure deployment automation scripts
- Improve repository navigation and organization
2025-11-13 09:32:55 -08:00

121 lines
3.1 KiB
TypeScript

/**
* Document Versions Tests
*/
import { describe, it, expect, beforeEach } from 'vitest';
import {
createDocumentVersion,
getDocumentVersions,
getLatestDocumentVersion,
compareDocumentVersions,
restoreDocumentVersion,
} from '@the-order/database';
describe('Document Versions', () => {
const testDocumentId = 'test-doc-id';
beforeEach(async () => {
// Setup test data
});
it('should create a new document version', async () => {
const version = await createDocumentVersion({
document_id: testDocumentId,
version_number: 1,
content: 'Initial content',
change_type: 'created',
});
expect(version).toBeDefined();
expect(version.version_number).toBe(1);
expect(version.content).toBe('Initial content');
});
it('should list all versions for a document', async () => {
await createDocumentVersion({
document_id: testDocumentId,
version_number: 1,
content: 'Version 1',
change_type: 'created',
});
await createDocumentVersion({
document_id: testDocumentId,
version_number: 2,
content: 'Version 2',
change_type: 'modified',
});
const versions = await getDocumentVersions(testDocumentId);
expect(versions.length).toBeGreaterThanOrEqual(2);
expect(versions[0]?.version_number).toBeGreaterThanOrEqual(versions[1]?.version_number || 0);
});
it('should get the latest version', async () => {
await createDocumentVersion({
document_id: testDocumentId,
version_number: 1,
content: 'Version 1',
change_type: 'created',
});
await createDocumentVersion({
document_id: testDocumentId,
version_number: 2,
content: 'Version 2',
change_type: 'modified',
});
const latest = await getLatestDocumentVersion(testDocumentId);
expect(latest?.version_number).toBe(2);
});
it('should compare two versions', async () => {
const v1 = await createDocumentVersion({
document_id: testDocumentId,
version_number: 1,
content: 'Original content',
change_type: 'created',
});
const v2 = await createDocumentVersion({
document_id: testDocumentId,
version_number: 2,
content: 'Modified content',
change_type: 'modified',
});
const comparison = await compareDocumentVersions(v1.id, v2.id);
expect(comparison).toBeDefined();
expect(comparison?.differences.length).toBeGreaterThan(0);
});
it('should restore a previous version', async () => {
const original = await createDocumentVersion({
document_id: testDocumentId,
version_number: 1,
content: 'Original content',
change_type: 'created',
});
await createDocumentVersion({
document_id: testDocumentId,
version_number: 2,
content: 'Modified content',
change_type: 'modified',
});
const restored = await restoreDocumentVersion(
testDocumentId,
original.id,
'test-user-id',
'Restored from version 1'
);
expect(restored).toBeDefined();
expect(restored.version_number).toBe(3);
expect(restored.content).toBe('Original content');
});
});