@@ -87,6 +87,7 @@ describe('Teams Route', () => {
8787 mockTeamService . createTeam = vi . fn ( ) ;
8888 mockTeamService . getUserTeams = vi . fn ( ) ;
8989 mockTeamService . getTeamMembership = vi . fn ( ) ;
90+ mockTeamService . getUserTeamsWithRoles = vi . fn ( ) ;
9091 mockTeamService . getUserDefaultTeam = vi . fn ( ) ;
9192 mockTeamService . getTeamById = vi . fn ( ) ;
9293 mockTeamService . isTeamMember = vi . fn ( ) ;
@@ -428,52 +429,48 @@ describe('Teams Route', () => {
428429 } ) ;
429430
430431 it ( 'should return user teams successfully' , async ( ) => {
431- const userTeams = [
432+ const userTeamsWithRoles = [
432433 {
433434 id : 'team-1' ,
434435 name : 'Team 1' ,
435436 slug : 'team-1' ,
436437 description : 'First team' ,
437438 owner_id : 'user-123' ,
439+ is_default : false ,
438440 created_at : new Date ( ) ,
439441 updated_at : new Date ( ) ,
442+ role : 'team_admin' ,
443+ is_admin : true ,
444+ is_owner : true ,
445+ member_count : 2 ,
440446 } ,
441447 {
442448 id : 'team-2' ,
443449 name : 'Team 2' ,
444450 slug : 'team-2' ,
445451 description : 'Second team' ,
446452 owner_id : 'user-456' ,
453+ is_default : false ,
447454 created_at : new Date ( ) ,
448455 updated_at : new Date ( ) ,
456+ role : 'team_user' ,
457+ is_admin : false ,
458+ is_owner : false ,
459+ member_count : 3 ,
449460 } ,
450461 ] ;
451462
452- const memberships = [
453- { role : 'team_admin' } ,
454- { role : 'team_user' } ,
455- ] ;
456-
457- mockTeamService . getUserTeams . mockResolvedValue ( userTeams ) ;
458- mockTeamService . getTeamMembership
459- . mockResolvedValueOnce ( memberships [ 0 ] )
460- . mockResolvedValueOnce ( memberships [ 1 ] ) ;
463+ mockTeamService . getUserTeamsWithRoles . mockResolvedValue ( userTeamsWithRoles ) ;
461464
462465 const handler = routeHandlers [ 'GET /teams/me' ] ;
463466 await handler ( mockRequest , mockReply ) ;
464467
465- expect ( mockTeamService . getUserTeams ) . toHaveBeenCalledWith ( 'user-123' ) ;
466- expect ( mockTeamService . getTeamMembership ) . toHaveBeenCalledTimes ( 2 ) ;
467- expect ( mockTeamService . getTeamMembership ) . toHaveBeenCalledWith ( 'team-1' , 'user-123' ) ;
468- expect ( mockTeamService . getTeamMembership ) . toHaveBeenCalledWith ( 'team-2' , 'user-123' ) ;
468+ expect ( mockTeamService . getUserTeamsWithRoles ) . toHaveBeenCalledWith ( 'user-123' ) ;
469469
470470 expect ( mockReply . status ) . toHaveBeenCalledWith ( 200 ) ;
471471 expect ( mockReply . send ) . toHaveBeenCalledWith ( {
472472 success : true ,
473- data : [
474- { ...userTeams [ 0 ] , role : 'team_admin' } ,
475- { ...userTeams [ 1 ] , role : 'team_user' } ,
476- ] ,
473+ data : userTeamsWithRoles ,
477474 } ) ;
478475 } ) ;
479476
@@ -491,12 +488,12 @@ describe('Teams Route', () => {
491488 } ) ;
492489
493490 it ( 'should return empty array when user has no teams' , async ( ) => {
494- mockTeamService . getUserTeams . mockResolvedValue ( [ ] ) ;
491+ mockTeamService . getUserTeamsWithRoles . mockResolvedValue ( [ ] ) ;
495492
496493 const handler = routeHandlers [ 'GET /teams/me' ] ;
497494 await handler ( mockRequest , mockReply ) ;
498495
499- expect ( mockTeamService . getUserTeams ) . toHaveBeenCalledWith ( 'user-123' ) ;
496+ expect ( mockTeamService . getUserTeamsWithRoles ) . toHaveBeenCalledWith ( 'user-123' ) ;
500497 expect ( mockReply . status ) . toHaveBeenCalledWith ( 200 ) ;
501498 expect ( mockReply . send ) . toHaveBeenCalledWith ( {
502499 success : true ,
@@ -505,35 +502,37 @@ describe('Teams Route', () => {
505502 } ) ;
506503
507504 it ( 'should handle teams with no membership (default to team_user)' , async ( ) => {
508- const userTeams = [
505+ const userTeamsWithRoles = [
509506 {
510507 id : 'team-1' ,
511508 name : 'Team 1' ,
512509 slug : 'team-1' ,
513510 description : 'First team' ,
514511 owner_id : 'user-123' ,
512+ is_default : false ,
515513 created_at : new Date ( ) ,
516514 updated_at : new Date ( ) ,
515+ role : 'team_user' ,
516+ is_admin : false ,
517+ is_owner : true ,
518+ member_count : 1 ,
517519 } ,
518520 ] ;
519521
520- mockTeamService . getUserTeams . mockResolvedValue ( userTeams ) ;
521- mockTeamService . getTeamMembership . mockResolvedValue ( null ) ;
522+ mockTeamService . getUserTeamsWithRoles . mockResolvedValue ( userTeamsWithRoles ) ;
522523
523524 const handler = routeHandlers [ 'GET /teams/me' ] ;
524525 await handler ( mockRequest , mockReply ) ;
525526
526527 expect ( mockReply . status ) . toHaveBeenCalledWith ( 200 ) ;
527528 expect ( mockReply . send ) . toHaveBeenCalledWith ( {
528529 success : true ,
529- data : [
530- { ...userTeams [ 0 ] , role : 'team_user' } ,
531- ] ,
530+ data : userTeamsWithRoles ,
532531 } ) ;
533532 } ) ;
534533
535534 it ( 'should handle internal server errors' , async ( ) => {
536- mockTeamService . getUserTeams . mockRejectedValue ( new Error ( 'Database error' ) ) ;
535+ mockTeamService . getUserTeamsWithRoles . mockRejectedValue ( new Error ( 'Database error' ) ) ;
537536
538537 const handler = routeHandlers [ 'GET /teams/me' ] ;
539538 await handler ( mockRequest , mockReply ) ;
@@ -547,20 +546,7 @@ describe('Teams Route', () => {
547546 } ) ;
548547
549548 it ( 'should handle membership lookup errors gracefully' , async ( ) => {
550- const userTeams = [
551- {
552- id : 'team-1' ,
553- name : 'Team 1' ,
554- slug : 'team-1' ,
555- description : 'First team' ,
556- owner_id : 'user-123' ,
557- created_at : new Date ( ) ,
558- updated_at : new Date ( ) ,
559- } ,
560- ] ;
561-
562- mockTeamService . getUserTeams . mockResolvedValue ( userTeams ) ;
563- mockTeamService . getTeamMembership . mockRejectedValue ( new Error ( 'Membership lookup failed' ) ) ;
549+ mockTeamService . getUserTeamsWithRoles . mockRejectedValue ( new Error ( 'Membership lookup failed' ) ) ;
564550
565551 const handler = routeHandlers [ 'GET /teams/me' ] ;
566552 await handler ( mockRequest , mockReply ) ;
0 commit comments