@@ -1526,4 +1526,57 @@ describe('Session', () => {
15261526 expect ( fetchSpy ) . toHaveBeenCalledTimes ( 1 ) ;
15271527 } ) ;
15281528 } ) ;
1529+
1530+ describe ( 'agent' , ( ) => {
1531+ it ( 'sets agent to null when actor is null' , ( ) => {
1532+ const session = new Session ( {
1533+ status : 'active' ,
1534+ id : 'session_1' ,
1535+ object : 'session' ,
1536+ user : createUser ( { } ) ,
1537+ last_active_organization_id : null ,
1538+ actor : null ,
1539+ created_at : new Date ( ) . getTime ( ) ,
1540+ updated_at : new Date ( ) . getTime ( ) ,
1541+ } as SessionJSON ) ;
1542+
1543+ expect ( session . actor ) . toBeNull ( ) ;
1544+ expect ( session . agent ) . toBeNull ( ) ;
1545+ } ) ;
1546+
1547+ it ( 'sets agent to null when actor has no type (impersonation)' , ( ) => {
1548+ const actor = { sub : 'user_2' } ;
1549+ const session = new Session ( {
1550+ status : 'active' ,
1551+ id : 'session_1' ,
1552+ object : 'session' ,
1553+ user : createUser ( { } ) ,
1554+ last_active_organization_id : null ,
1555+ actor,
1556+ created_at : new Date ( ) . getTime ( ) ,
1557+ updated_at : new Date ( ) . getTime ( ) ,
1558+ } as SessionJSON ) ;
1559+
1560+ expect ( session . actor ) . toEqual ( actor ) ;
1561+ expect ( session . agent ) . toBeNull ( ) ;
1562+ } ) ;
1563+
1564+ it ( 'sets agent to the actor when actor has type "agent"' , ( ) => {
1565+ const actor = { sub : 'user_2' , type : 'agent' as const } ;
1566+ const session = new Session ( {
1567+ status : 'active' ,
1568+ id : 'session_1' ,
1569+ object : 'session' ,
1570+ user : createUser ( { } ) ,
1571+ last_active_organization_id : null ,
1572+ actor,
1573+ created_at : new Date ( ) . getTime ( ) ,
1574+ updated_at : new Date ( ) . getTime ( ) ,
1575+ } as SessionJSON ) ;
1576+
1577+ expect ( session . actor ) . toEqual ( actor ) ;
1578+ expect ( session . agent ) . toEqual ( actor ) ;
1579+ expect ( session . agent ?. type ) . toBe ( 'agent' ) ;
1580+ } ) ;
1581+ } ) ;
15291582} ) ;
0 commit comments