@@ -102,52 +102,59 @@ describe('ProcessController', () => {
102102 ] ;
103103
104104 const user = { id : '2' , roles : [ 'admin' , 'team' , 'assistant' ] } as Account ;
105- const apiKey = {
106- processes : [ { scenario : 'test' } , { scenario : 'test2' , actors : [ 'system' ] } ] ,
107- } as ApiKey ;
105+ const apiKey = { service : 'system' } as ApiKey ;
108106
109107 it ( 'should return a list of processes' , async ( ) => {
110108 jest . spyOn ( processService , 'list' ) . mockResolvedValue ( mockProcesses as any ) ;
111109
112- await controller . list ( undefined , undefined , undefined , undefined , mockResponse ) ;
110+ await controller . list ( undefined , undefined , undefined , undefined , undefined , mockResponse ) ;
113111
114- expect ( processService . list ) . toHaveBeenCalledWith ( { limit : 100 , page : 1 } ) ;
112+ expect ( processService . list ) . toHaveBeenCalledWith ( { } , { limit : 100 , page : 1 } ) ;
115113 expect ( mockResponse . status ) . toHaveBeenCalledWith ( HttpStatus . OK ) ;
116114 expect ( mockResponse . json ) . toHaveBeenCalledWith ( mockProcesses ) ;
117115 } ) ;
118116
119117 it ( 'should return page 2' , async ( ) => {
120118 jest . spyOn ( processService , 'list' ) . mockResolvedValue ( mockProcesses as any ) ;
121119
122- await controller . list ( 2 , undefined , undefined , undefined , mockResponse ) ;
120+ await controller . list ( 2 , undefined , undefined , undefined , undefined , mockResponse ) ;
123121
124- expect ( processService . list ) . toHaveBeenCalledWith ( { limit : 100 , page : 2 } ) ;
122+ expect ( processService . list ) . toHaveBeenCalledWith ( { } , { limit : 100 , page : 2 } ) ;
125123 } ) ;
126124
127125 it ( 'should filter processes by actor for user' , async ( ) => {
128126 jest . spyOn ( processService , 'list' ) . mockResolvedValue ( mockProcesses as any ) ;
129127
130- await controller . list ( undefined , undefined , user , undefined , mockResponse ) ;
128+ await controller . list ( undefined , undefined , undefined , user , undefined , mockResponse ) ;
131129
132- expect ( processService . list ) . toHaveBeenCalledWith ( {
133- limit : 100 ,
134- page : 1 ,
135- actors : [ { id : '2' } , { role : 'admin' } , { role : 'team' } , { role : 'assistant' } ] ,
136- } ) ;
130+ expect ( processService . list ) . toHaveBeenCalledWith (
131+ { actors : [ { id : '2' } , { role : 'admin' } , { role : 'team' } , { role : 'assistant' } ] } ,
132+ { limit : 100 , page : 1 } ,
133+ ) ;
137134 } ) ;
138135
139136 it ( 'should not filter processes by actor for admin user requesting all processes' , async ( ) => {
140137 jest . spyOn ( processService , 'list' ) . mockResolvedValue ( mockProcesses as any ) ;
141138
142- await controller . list ( undefined , true , user , undefined , mockResponse ) ;
139+ await controller . list ( undefined , undefined , true , user , undefined , mockResponse ) ;
143140
144- expect ( processService . list ) . toHaveBeenCalledWith ( { limit : 100 , page : 1 } ) ;
141+ expect ( processService . list ) . toHaveBeenCalledWith ( { } , { limit : 100 , page : 1 } ) ;
145142 } ) ;
146143
147144 it ( 'should not allow user with super privileges to list all processes' , async ( ) => {
148145 authService . hasPrivilege . mockReturnValue ( false ) ;
149146
150- await controller . list ( undefined , true , { id : '2' , roles : [ 'team' ] } as Account , undefined , mockResponse ) ;
147+ await controller . list (
148+ undefined ,
149+ undefined ,
150+ true ,
151+ {
152+ id : '2' ,
153+ roles : [ 'team' ] ,
154+ } as Account ,
155+ undefined ,
156+ mockResponse ,
157+ ) ;
151158
152159 expect ( mockResponse . status ) . toHaveBeenCalledWith ( HttpStatus . FORBIDDEN ) ;
153160 expect ( mockResponse . send ) . toHaveBeenCalledWith ( 'Not allowed to list all processes' ) ;
@@ -159,21 +166,17 @@ describe('ProcessController', () => {
159166 it ( 'should filter processes by scenario for API key' , async ( ) => {
160167 jest . spyOn ( processService , 'list' ) . mockResolvedValue ( mockProcesses as any ) ;
161168
162- await controller . list ( undefined , undefined , undefined , apiKey , mockResponse ) ;
169+ await controller . list ( undefined , undefined , undefined , undefined , apiKey , mockResponse ) ;
163170
164- expect ( processService . list ) . toHaveBeenCalledWith ( {
165- limit : 100 ,
166- page : 1 ,
167- scenarios : [ 'test' , 'test2' ] ,
168- } ) ;
171+ expect ( processService . list ) . toHaveBeenCalledWith ( { service : 'system' } , { limit : 100 , page : 1 } ) ;
169172 } ) ;
170173
171174 it ( 'should not filter processes for an API key without process limitations' , async ( ) => {
172175 jest . spyOn ( processService , 'list' ) . mockResolvedValue ( mockProcesses as any ) ;
173176
174- await controller . list ( undefined , true , undefined , { } as ApiKey , mockResponse ) ;
177+ await controller . list ( undefined , undefined , true , undefined , { } as ApiKey , mockResponse ) ;
175178
176- expect ( processService . list ) . toHaveBeenCalledWith ( { limit : 100 , page : 1 } ) ;
179+ expect ( processService . list ) . toHaveBeenCalledWith ( { } , { limit : 100 , page : 1 } ) ;
177180 } ) ;
178181 } ) ;
179182
@@ -186,6 +189,15 @@ describe('ProcessController', () => {
186189 client : { id : '3' } ,
187190 assistant : { role : 'assistant' } ,
188191 } ,
192+ current : {
193+ key : 'foo' ,
194+ actions : [
195+ {
196+ key : 'generate' ,
197+ actor : [ 'service:system' ] ,
198+ } ,
199+ ] ,
200+ } ,
189201 created : new Date ( ) ,
190202 lastUpdated : new Date ( ) ,
191203 } ;
@@ -194,13 +206,13 @@ describe('ProcessController', () => {
194206 [ 'admin user' , { id : '1' , roles : [ 'admin' ] , token : '' } , undefined ] ,
195207 [ 'user by role' , { id : '2' , roles : [ 'assistant' ] , token : '' } , undefined ] ,
196208 [ 'user by id' , { id : '3' , roles : [ ] , token : '' } , undefined ] ,
197- [ 'API key' , undefined , { privileges : [ 'process:read' ] } ] ,
198- [ 'API key with scenario ' , undefined , { privileges : [ 'process:read' ] , processes : [ { scenario : 'test' } ] } ] ,
209+ [ 'API key of service ' , undefined , { privileges : [ 'process:read' ] , service : 'system' } ] ,
210+ [ 'API key with super privs ' , undefined , { privileges : [ 'process:read' , 'process:super' ] } ] ,
199211 ] ) ( 'should return a process for %s' , async ( _ , user , apiKey ) => {
200212 processService . has . mockResolvedValue ( true ) ;
201213 processService . get . mockResolvedValue ( mockProcess as any ) ;
202214
203- await controller . get ( '00000000-0000-0000-0001-000000000001' , user , apiKey , mockResponse ) ;
215+ await controller . get ( '00000000-0000-0000-0001-000000000001' , user , apiKey , false , mockResponse ) ;
204216
205217 expect ( processService . has ) . toHaveBeenCalledWith ( '00000000-0000-0000-0001-000000000001' ) ;
206218 expect ( processService . get ) . toHaveBeenCalledWith ( '00000000-0000-0000-0001-000000000001' ) ;
@@ -211,7 +223,7 @@ describe('ProcessController', () => {
211223 it ( 'should return 404 if process not found' , async ( ) => {
212224 processService . has . mockResolvedValue ( false ) ;
213225
214- await controller . get ( '00000000-0000-0000-0001-000000000001' , undefined , undefined , mockResponse ) ;
226+ await controller . get ( '00000000-0000-0000-0001-000000000001' , undefined , undefined , false , mockResponse ) ;
215227
216228 expect ( processService . has ) . toHaveBeenCalledWith ( '00000000-0000-0000-0001-000000000001' ) ;
217229 expect ( mockResponse . status ) . toHaveBeenCalledWith ( HttpStatus . NOT_FOUND ) ;
@@ -225,7 +237,7 @@ describe('ProcessController', () => {
225237 authService . hasPrivilege . mockReturnValue ( false ) ;
226238
227239 const user = { id : '99' , roles : [ ] , token : '' , info : { } } ;
228- await controller . get ( '00000000-0000-0000-0001-000000000001' , user , undefined , mockResponse ) ;
240+ await controller . get ( '00000000-0000-0000-0001-000000000001' , user , undefined , false , mockResponse ) ;
229241
230242 expect ( mockResponse . status ) . toHaveBeenCalledWith ( HttpStatus . FORBIDDEN ) ;
231243
@@ -242,7 +254,7 @@ describe('ProcessController', () => {
242254
243255 const apiKey = { processes : [ { scenario : 'foo' } ] , privileges : [ ] } ;
244256
245- await controller . get ( '00000000-0000-0000-0001-000000000001' , undefined , apiKey , mockResponse ) ;
257+ await controller . get ( '00000000-0000-0000-0001-000000000001' , undefined , apiKey , false , mockResponse ) ;
246258
247259 expect ( mockResponse . status ) . toHaveBeenCalledWith ( HttpStatus . FORBIDDEN ) ;
248260 } ) ;
@@ -281,7 +293,7 @@ describe('ProcessController', () => {
281293 scenarioService . getStatus . mockResolvedValue ( 'available' ) ;
282294 scenarioService . get . mockResolvedValue ( scenario ) ;
283295 processService . determineActor . mockReturnValue ( actor ) ;
284- processService . instantiate . mockResolvedValue ( process ) ;
296+ processService . instantiate . mockReturnValue ( process ) ;
285297 } ) ;
286298
287299 it ( 'should start a new process' , async ( ) => {
@@ -293,7 +305,7 @@ describe('ProcessController', () => {
293305 const steppedProcess = step ( process , 'init' , actor ) ;
294306 processService . step . mockResolvedValue ( steppedProcess ) ;
295307
296- await controller . start ( undefined , user , undefined , mockInstructions , mockResponse ) ;
308+ await controller . start ( undefined , user , undefined , false , mockInstructions , mockResponse ) ;
297309
298310 expect ( mockResponse . status ) . toHaveBeenCalledWith ( HttpStatus . CREATED ) ;
299311 expect ( mockResponse . header ) . toHaveBeenCalledWith ( 'Location' , `/processes/${ process . id } ` ) ;
@@ -316,7 +328,7 @@ describe('ProcessController', () => {
316328 const steppedProcess = step ( process , 'init' , actor , 'hello' ) ;
317329 processService . step . mockResolvedValue ( steppedProcess ) ;
318330
319- await controller . start ( undefined , user , undefined , mockInstructions , mockResponse ) ;
331+ await controller . start ( undefined , user , undefined , false , mockInstructions , mockResponse ) ;
320332
321333 expect ( mockResponse . status ) . toHaveBeenCalledWith ( HttpStatus . CREATED ) ;
322334 expect ( mockResponse . header ) . toHaveBeenCalledWith ( 'Location' , `/processes/${ process . id } ` ) ;
@@ -335,7 +347,7 @@ describe('ProcessController', () => {
335347 const steppedProcess = step ( process , 'wrongAction' , actor , { } ) ;
336348 processService . step . mockResolvedValue ( steppedProcess ) ;
337349
338- await controller . start ( undefined , user , undefined , mockInstructions , mockResponse ) ;
350+ await controller . start ( undefined , user , undefined , false , mockInstructions , mockResponse ) ;
339351
340352 expect ( mockResponse . status ) . toHaveBeenCalledWith ( HttpStatus . BAD_REQUEST ) ;
341353 expect ( mockResponse . json ) . toHaveBeenCalledWith ( {
0 commit comments