1- import { PERMISSION_CAN_DOWNLOAD , PERMISSION_CAN_PREVIEW } from '../../../constants' ;
1+ import { ACCESS_NONE , PERMISSION_CAN_DOWNLOAD , PERMISSION_CAN_PREVIEW } from '../../../constants' ;
22import { CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS } from '../constants' ;
33import { createSharingService } from '../sharingService' ;
44import { convertSharedLinkPermissions , convertSharedLinkSettings } from '../utils' ;
@@ -7,9 +7,20 @@ jest.mock('../utils');
77
88const mockItemApiInstance = {
99 updateSharedLink : jest . fn ( ) ,
10+ share : jest . fn ( ) ,
1011} ;
1112const options = { id : '123' , permissions : { can_set_share_access : true , can_share : true } } ;
12- const mockOnSuccess = jest . fn ( ) ;
13+ const mockOnUpdateSharedLink = jest . fn ( ) ;
14+ const mockOnRemoveSharedLink = jest . fn ( ) ;
15+
16+ const createSharingServiceWrapper = ( ) => {
17+ return createSharingService ( {
18+ itemApiInstance : mockItemApiInstance ,
19+ onUpdateSharedLink : mockOnUpdateSharedLink ,
20+ onRemoveSharedLink : mockOnRemoveSharedLink ,
21+ options,
22+ } ) ;
23+ } ;
1324
1425describe ( 'elements/content-sharing/sharingService' , ( ) => {
1526 beforeEach ( ( ) => {
@@ -29,23 +40,13 @@ describe('elements/content-sharing/sharingService', () => {
2940
3041 describe ( 'changeSharedLinkPermission' , ( ) => {
3142 test ( 'should return an object with changeSharedLinkPermission method' , ( ) => {
32- const service = createSharingService ( {
33- itemApiInstance : mockItemApiInstance ,
34- onSuccess : mockOnSuccess ,
35- options,
36- } ) ;
37-
43+ const service = createSharingServiceWrapper ( ) ;
3844 expect ( service ) . toHaveProperty ( 'changeSharedLinkPermission' ) ;
3945 expect ( typeof service . changeSharedLinkPermission ) . toBe ( 'function' ) ;
4046 } ) ;
4147
4248 test ( 'should call updateSharedLink with correct parameters when changeSharedLinkPermission is called' , async ( ) => {
43- const service = createSharingService ( {
44- itemApiInstance : mockItemApiInstance ,
45- onSuccess : mockOnSuccess ,
46- options,
47- } ) ;
48-
49+ const service = createSharingServiceWrapper ( ) ;
4950 const permissionLevel = PERMISSION_CAN_DOWNLOAD ;
5051 const expectedPermissions = {
5152 [ PERMISSION_CAN_DOWNLOAD ] : true ,
@@ -57,7 +58,73 @@ describe('elements/content-sharing/sharingService', () => {
5758 expect ( mockItemApiInstance . updateSharedLink ) . toHaveBeenCalledWith (
5859 options ,
5960 { permissions : expectedPermissions } ,
60- mockOnSuccess ,
61+ mockOnUpdateSharedLink ,
62+ { } ,
63+ CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS ,
64+ ) ;
65+ } ) ;
66+ } ) ;
67+
68+ describe ( 'changeSharedLinkAccess' , ( ) => {
69+ test ( 'should return an object with changeSharedLinkAccess method' , ( ) => {
70+ const service = createSharingServiceWrapper ( ) ;
71+ expect ( service ) . toHaveProperty ( 'changeSharedLinkAccess' ) ;
72+ expect ( typeof service . changeSharedLinkAccess ) . toBe ( 'function' ) ;
73+ } ) ;
74+
75+ test . each ( [ 'open' , 'company' , 'collaborators' ] ) (
76+ 'should call share with correct parameters when changeSharedLinkAccess is called' ,
77+ async access => {
78+ const service = createSharingServiceWrapper ( ) ;
79+ await service . changeSharedLinkAccess ( access ) ;
80+
81+ expect ( mockItemApiInstance . share ) . toHaveBeenCalledWith (
82+ options ,
83+ access ,
84+ mockOnUpdateSharedLink ,
85+ { } ,
86+ CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS ,
87+ ) ;
88+ } ,
89+ ) ;
90+ } ) ;
91+
92+ describe ( 'createSharedLink' , ( ) => {
93+ test ( 'should return an object with createSharedLink method' , ( ) => {
94+ const service = createSharingServiceWrapper ( ) ;
95+ expect ( service ) . toHaveProperty ( 'createSharedLink' ) ;
96+ expect ( typeof service . createSharedLink ) . toBe ( 'function' ) ;
97+ } ) ;
98+
99+ test ( 'should call share with correct parameters when createSharedLink is called' , async ( ) => {
100+ const service = createSharingServiceWrapper ( ) ;
101+ await service . createSharedLink ( ) ;
102+
103+ expect ( mockItemApiInstance . share ) . toHaveBeenCalledWith (
104+ options ,
105+ undefined ,
106+ mockOnUpdateSharedLink ,
107+ { } ,
108+ CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS ,
109+ ) ;
110+ } ) ;
111+ } ) ;
112+
113+ describe ( 'deleteSharedLink' , ( ) => {
114+ test ( 'should return an object with deleteSharedLink method' , ( ) => {
115+ const service = createSharingServiceWrapper ( ) ;
116+ expect ( service ) . toHaveProperty ( 'deleteSharedLink' ) ;
117+ expect ( typeof service . deleteSharedLink ) . toBe ( 'function' ) ;
118+ } ) ;
119+
120+ test ( 'should call share with ACCESS_NONE and onRemoveSharedLink when deleteSharedLink is called' , async ( ) => {
121+ const service = createSharingServiceWrapper ( ) ;
122+ await service . deleteSharedLink ( ) ;
123+
124+ expect ( mockItemApiInstance . share ) . toHaveBeenCalledWith (
125+ options ,
126+ ACCESS_NONE ,
127+ mockOnRemoveSharedLink ,
61128 { } ,
62129 CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS ,
63130 ) ;
@@ -66,22 +133,14 @@ describe('elements/content-sharing/sharingService', () => {
66133
67134 describe ( 'updateSharedLink' , ( ) => {
68135 test ( 'should return an object with updateSharedLink method' , ( ) => {
69- const service = createSharingService ( {
70- itemApiInstance : mockItemApiInstance ,
71- onSuccess : mockOnSuccess ,
72- options,
73- } ) ;
136+ const service = createSharingServiceWrapper ( ) ;
74137
75138 expect ( service ) . toHaveProperty ( 'updateSharedLink' ) ;
76139 expect ( typeof service . updateSharedLink ) . toBe ( 'function' ) ;
77140 } ) ;
78141
79142 test ( 'should call updateSharedLink with basic shared link settings' , async ( ) => {
80- const service = createSharingService ( {
81- itemApiInstance : mockItemApiInstance ,
82- onSuccess : mockOnSuccess ,
83- options,
84- } ) ;
143+ const service = createSharingServiceWrapper ( ) ;
85144
86145 const sharedLinkSettings = {
87146 expiration : null ,
@@ -108,7 +167,7 @@ describe('elements/content-sharing/sharingService', () => {
108167 expect ( mockItemApiInstance . updateSharedLink ) . toHaveBeenCalledWith (
109168 options ,
110169 expectedConvertedSettings ,
111- mockOnSuccess ,
170+ mockOnUpdateSharedLink ,
112171 { } ,
113172 CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS ,
114173 ) ;
@@ -126,7 +185,8 @@ describe('elements/content-sharing/sharingService', () => {
126185
127186 const service = createSharingService ( {
128187 itemApiInstance : mockItemApiInstance ,
129- onSuccess : mockOnSuccess ,
188+ onUpdateSharedLink : mockOnUpdateSharedLink ,
189+ onRemoveSharedLink : mockOnRemoveSharedLink ,
130190 options : {
131191 ...options ,
132192 access : 'open' ,
@@ -155,18 +215,14 @@ describe('elements/content-sharing/sharingService', () => {
155215 expect ( mockItemApiInstance . updateSharedLink ) . toHaveBeenCalledWith (
156216 options ,
157217 mockConvertedSharedLinkSettings ,
158- mockOnSuccess ,
218+ mockOnUpdateSharedLink ,
159219 { } ,
160220 CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS ,
161221 ) ;
162222 } ) ;
163223
164224 test ( 'should handle shared link settings correctly' , async ( ) => {
165- const service = createSharingService ( {
166- itemApiInstance : mockItemApiInstance ,
167- onSuccess : mockOnSuccess ,
168- options,
169- } ) ;
225+ const service = createSharingServiceWrapper ( ) ;
170226
171227 const expirationDate = new Date ( '2024-12-31T23:59:59Z' ) ;
172228 const sharedLinkSettings = {
0 commit comments