-
Notifications
You must be signed in to change notification settings - Fork 346
Expand file tree
/
Copy pathsharingService.test.ts
More file actions
67 lines (57 loc) · 2.65 KB
/
sharingService.test.ts
File metadata and controls
67 lines (57 loc) · 2.65 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import { PERMISSION_CAN_DOWNLOAD, PERMISSION_CAN_PREVIEW } from '../../../constants';
import { CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS } from '../constants';
import { convertSharedLinkPermissions, createSharingService } from '../sharingService';
describe('elements/content-sharing/sharingService', () => {
describe('convertSharedLinkPermissions', () => {
test.each([
[PERMISSION_CAN_DOWNLOAD, { [PERMISSION_CAN_DOWNLOAD]: true, [PERMISSION_CAN_PREVIEW]: false }],
[PERMISSION_CAN_PREVIEW, { [PERMISSION_CAN_DOWNLOAD]: false, [PERMISSION_CAN_PREVIEW]: true }],
])('should return correct permissions for download permission level', (permissionLevel, expected) => {
const result = convertSharedLinkPermissions(permissionLevel);
expect(result).toEqual(expected);
});
test('should handle empty string permission level', () => {
const result = convertSharedLinkPermissions('');
expect(result).toEqual({});
});
});
describe('createSharingService', () => {
const mockItemApiInstance = {
updateSharedLink: jest.fn(),
};
const mockItemData = { id: '123' };
const mockOnSuccess = jest.fn();
afterEach(() => {
jest.clearAllMocks();
});
test('should return an object with changeSharedLinkPermission method', () => {
const service = createSharingService({
itemApiInstance: mockItemApiInstance,
itemData: mockItemData,
onSuccess: mockOnSuccess,
});
expect(service).toHaveProperty('changeSharedLinkPermission');
expect(typeof service.changeSharedLinkPermission).toBe('function');
});
test('should call updateSharedLink with correct parameters when changeSharedLinkPermission is called', async () => {
const service = createSharingService({
itemApiInstance: mockItemApiInstance,
itemData: mockItemData,
onSuccess: mockOnSuccess,
});
const permissionLevel = PERMISSION_CAN_DOWNLOAD;
const expectedPermissions = {
[PERMISSION_CAN_DOWNLOAD]: true,
[PERMISSION_CAN_PREVIEW]: false,
};
await service.changeSharedLinkPermission(permissionLevel);
expect(mockItemApiInstance.updateSharedLink).toHaveBeenCalledWith(
mockItemData,
{ permissions: expectedPermissions },
mockOnSuccess,
{},
CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS,
);
});
});
});