@@ -5,14 +5,15 @@ import { AccessDeniedException, HttpException, NotFoundException } from '../../s
55import { batmanAppAdmin , supermanAdmin , greenlanternHead , wonderwomanGuest , member } from '../test-data/users.test-data.js' ;
66import { createTestOrganization , createTestTeam , createTestTeamType , createTestUser , resetUsers } from '../test-utils.js' ;
77import prisma from '../../src/prisma/prisma.js' ;
8- import { sendMessage , editMessage , replyToMessageInThread , getChannelName } from '../../src/integrations/slack.js' ;
8+ import { sendMessage , editMessage , replyToMessageInThread , getChannelName , checkBotInChannel } from '../../src/integrations/slack.js' ;
99import { Mock } from 'vitest' ;
1010
1111vi . mock ( '../../src/integrations/slack.js' , ( ) => ( {
1212 sendMessage : vi . fn ( ) ,
1313 editMessage : vi . fn ( ) ,
1414 replyToMessageInThread : vi . fn ( ) ,
15- getChannelName : vi . fn ( )
15+ getChannelName : vi . fn ( ) ,
16+ checkBotInChannel : vi . fn ( )
1617} ) ) ;
1718
1819// Creates a second test org with distinct credentials (since createTestOrganization uses a hardcoded empty email)
@@ -531,11 +532,25 @@ describe('Attendance Tests', () => {
531532 expect ( result . channelName ) . toBeUndefined ( ) ;
532533 } ) ;
533534
534- it ( 'returns valid: true with channel name if Slack channel is found' , async ( ) => {
535+ it ( 'returns valid: false if Slack channel is found but bot is not a member ' , async ( ) => {
535536 const head = await createTestUser ( greenlanternHead , orgId ) ;
536537 const team = await createTeamInOrg ( head . userId , orgId ) ;
537538
538539 ( getChannelName as Mock ) . mockResolvedValue ( 'ner-software' ) ;
540+ ( checkBotInChannel as Mock ) . mockResolvedValue ( false ) ;
541+
542+ const result = await AttendanceService . checkTeamChannel ( team . teamId , organization ) ;
543+
544+ expect ( result . valid ) . toBe ( false ) ;
545+ expect ( result . channelName ) . toBe ( 'ner-software' ) ;
546+ } ) ;
547+
548+ it ( 'returns valid: true with channel name if Slack channel is found and bot is a member' , async ( ) => {
549+ const head = await createTestUser ( greenlanternHead , orgId ) ;
550+ const team = await createTeamInOrg ( head . userId , orgId ) ;
551+
552+ ( getChannelName as Mock ) . mockResolvedValue ( 'ner-software' ) ;
553+ ( checkBotInChannel as Mock ) . mockResolvedValue ( true ) ;
539554
540555 const result = await AttendanceService . checkTeamChannel ( team . teamId , organization ) ;
541556
0 commit comments