@@ -54,11 +54,19 @@ describe('EventsService', () => {
5454 getMany : stub ( ) . resolves ( { items : [ { default : true , code : 'de-DE' } ] } ) ,
5555 } ,
5656 user : {
57- getManyForSpace : stub ( ) . resolves ( {
58- items : [
59- { sys : { id : 'publisher' } , firstName : 'Pub' , lastName : 'Lisher' } ,
60- { sys : { id : 'creator' } , firstName : 'Cre' , lastName : 'Ator' } ,
61- ] ,
57+ getForSpace : stub ( ) . callsFake ( ( { userId } ) => {
58+ const users : Record <
59+ string ,
60+ { sys : { id : string } ; firstName : string ; lastName : string }
61+ > = {
62+ publisher : { sys : { id : 'publisher' } , firstName : 'Pub' , lastName : 'Lisher' } ,
63+ creator : { sys : { id : 'creator' } , firstName : 'Cre' , lastName : 'Ator' } ,
64+ } ;
65+ const user = users [ userId ] ;
66+ if ( ! user ) {
67+ return Promise . reject ( new Error ( 'not found' ) ) ;
68+ }
69+ return Promise . resolve ( user ) ;
6270 } ) ,
6371 } ,
6472 space : {
@@ -260,6 +268,22 @@ describe('EventsService', () => {
260268 ) ;
261269 assert . deepEqual ( resolvedEntity , expectedValue ) ;
262270 } ) ;
271+ it ( 'falls back to the raw actor ID when the user lookup fails' , async ( ) => {
272+ const unknownActorEventBody = {
273+ ...eventBody ,
274+ sys : { ...eventBody . sys , createdBy : { sys : { id : 'unknown-user' } } } ,
275+ } as unknown as EventEntity ;
276+
277+ const resolvedEntity = await instance . getResolvedEntity (
278+ 'space-id' ,
279+ 'env-id' ,
280+ 'contentful' ,
281+ SlackAppEventKey . CREATED ,
282+ unknownActorEventBody
283+ ) ;
284+ assert . equal ( resolvedEntity ?. actorId , 'unknown-user' ) ;
285+ assert . equal ( resolvedEntity ?. actorName , 'unknown-user' ) ;
286+ } ) ;
263287 it ( 'returns the expected resolved values for DELETE' , async ( ) => {
264288 const expectedValue = {
265289 actorId : undefined ,
0 commit comments