Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / packages / docs-core / lib / UseCase / GetAdditionalEncryptionData.test.ts
blob12dad151483c31ae47bbefd3245bab16eb9e4c46
1 import {
2   GetAssociatedEncryptionDataForRealtimeMessage,
3   GetAssociatedEncryptionDataForComment,
4   isAnonymousComment,
5 } from './GetAdditionalEncryptionData'
7 describe('GetAdditionalEncryptionData', () => {
8   describe('GetAssociatedEncryptionDataForRealtimeMessage', () => {
9     it('should format data with author address when present', () => {
10       const metadata = {
11         version: 1,
12         authorAddress: 'test@example.com',
13         timestamp: 1234567890,
14       }
16       const result = GetAssociatedEncryptionDataForRealtimeMessage(metadata)
17       expect(result).toBe('1.test@example.com.1234567890')
18     })
20     it('should format data with "anonymous" when author address is undefined', () => {
21       const metadata = {
22         version: 1,
23         authorAddress: undefined,
24         timestamp: 1234567890,
25       }
27       const result = GetAssociatedEncryptionDataForRealtimeMessage(metadata)
28       expect(result).toBe('1.anonymous.1234567890')
29     })
31     it('should handle different version numbers', () => {
32       const metadata = {
33         version: 2,
34         authorAddress: 'test@example.com',
35         timestamp: 1234567890,
36       }
38       const result = GetAssociatedEncryptionDataForRealtimeMessage(metadata)
39       expect(result).toBe('2.test@example.com.1234567890')
40     })
41   })
43   describe('GetAssociatedEncryptionDataForComment', () => {
44     it('should format data with author address when present', () => {
45       const metadata = {
46         authorAddress: 'test@example.com',
47         markId: 'mark-123',
48       }
50       const result = GetAssociatedEncryptionDataForComment(metadata)
51       expect(result).toBe('test@example.com.mark-123')
52     })
54     it('should format data with "anonymous" when author address is undefined', () => {
55       const metadata = {
56         authorAddress: undefined,
57         markId: 'mark-123',
58       }
60       const result = GetAssociatedEncryptionDataForComment(metadata)
61       expect(result).toBe('anonymous.mark-123')
62     })
64     it('should handle different markId formats', () => {
65       const metadata = {
66         authorAddress: 'test@example.com',
67         markId: 'uuid-123-456-789',
68       }
70       const result = GetAssociatedEncryptionDataForComment(metadata)
71       expect(result).toBe('test@example.com.uuid-123-456-789')
72     })
73   })
75   describe('isAnonymousComment', () => {
76     it('should return true if the AAD is anonymous', () => {
77       expect(isAnonymousComment('anonymous.mark-123')).toBe(true)
78     })
80     it('should return false if the AAD is not anonymous', () => {
81       expect(isAnonymousComment('test@example.com.mark-123')).toBe(false)
82     })
83   })