@@ -1233,4 +1233,57 @@ describe('Session', () => {
12331233 expect ( fetchSpy ) . toHaveBeenCalledTimes ( 1 ) ;
12341234 } ) ;
12351235 } ) ;
1236+
1237+ describe ( 'agent' , ( ) => {
1238+ it ( 'sets agent to null when actor is null' , ( ) => {
1239+ const session = new Session ( {
1240+ status : 'active' ,
1241+ id : 'session_1' ,
1242+ object : 'session' ,
1243+ user : createUser ( { } ) ,
1244+ last_active_organization_id : null ,
1245+ actor : null ,
1246+ created_at : new Date ( ) . getTime ( ) ,
1247+ updated_at : new Date ( ) . getTime ( ) ,
1248+ } as SessionJSON ) ;
1249+
1250+ expect ( session . actor ) . toBeNull ( ) ;
1251+ expect ( session . agent ) . toBeNull ( ) ;
1252+ } ) ;
1253+
1254+ it ( 'sets agent to null when actor has no type (impersonation)' , ( ) => {
1255+ const actor = { sub : 'user_2' } ;
1256+ const session = new Session ( {
1257+ status : 'active' ,
1258+ id : 'session_1' ,
1259+ object : 'session' ,
1260+ user : createUser ( { } ) ,
1261+ last_active_organization_id : null ,
1262+ actor,
1263+ created_at : new Date ( ) . getTime ( ) ,
1264+ updated_at : new Date ( ) . getTime ( ) ,
1265+ } as SessionJSON ) ;
1266+
1267+ expect ( session . actor ) . toEqual ( actor ) ;
1268+ expect ( session . agent ) . toBeNull ( ) ;
1269+ } ) ;
1270+
1271+ it ( 'sets agent to the actor when actor has type "agent"' , ( ) => {
1272+ const actor = { sub : 'user_2' , type : 'agent' as const } ;
1273+ const session = new Session ( {
1274+ status : 'active' ,
1275+ id : 'session_1' ,
1276+ object : 'session' ,
1277+ user : createUser ( { } ) ,
1278+ last_active_organization_id : null ,
1279+ actor,
1280+ created_at : new Date ( ) . getTime ( ) ,
1281+ updated_at : new Date ( ) . getTime ( ) ,
1282+ } as SessionJSON ) ;
1283+
1284+ expect ( session . actor ) . toEqual ( actor ) ;
1285+ expect ( session . agent ) . toEqual ( actor ) ;
1286+ expect ( session . agent ?. type ) . toBe ( 'agent' ) ;
1287+ } ) ;
1288+ } ) ;
12361289} ) ;
0 commit comments