@@ -4204,4 +4204,94 @@ describe('[Rooms]', () => {
42044204 } ) ;
42054205 } ) ;
42064206 } ) ;
4207+
4208+ describe ( '/rooms.hide' , ( ) => {
4209+ let roomA : IRoom ;
4210+ let roomB : IRoom ;
4211+ const roomName = `rooms.hide.test.${ Date . now ( ) } ` ;
4212+ let memberA : TestUser < IUser > ;
4213+ let memberB : TestUser < IUser > ;
4214+ let nonMember : TestUser < IUser > ;
4215+ let nonMemberCredentials : Credentials ;
4216+
4217+ before ( async ( ) => {
4218+ memberA = await createUser ( ) ;
4219+ memberB = await createUser ( ) ;
4220+ nonMember = await createUser ( ) ;
4221+ nonMemberCredentials = await login ( nonMember . username , password ) ;
4222+ } ) ;
4223+
4224+ before ( async ( ) => {
4225+ roomA = ( await createRoom ( { type : 'c' , name : roomName , members : [ memberA . username , memberB . username ] } ) ) . body . channel ;
4226+ roomB = ( await createRoom ( { type : 'd' , username : memberB . username } ) ) . body . room ;
4227+ } ) ;
4228+
4229+ after ( async ( ) => {
4230+ await deleteRoom ( { type : 'c' , roomId : roomA . _id } ) ;
4231+ await deleteRoom ( { type : 'd' , roomId : roomB . _id } ) ;
4232+ await deleteUser ( memberA ) ;
4233+ await deleteUser ( memberB ) ;
4234+ await deleteUser ( nonMember ) ;
4235+ } ) ;
4236+
4237+ it ( 'should hide the room' , async ( ) => {
4238+ await request
4239+ . post ( api ( 'rooms.hide' ) )
4240+ . set ( credentials )
4241+ . send ( { roomId : roomA . _id } )
4242+ . expect ( 'Content-Type' , 'application/json' )
4243+ . expect ( 200 )
4244+ . expect ( ( res ) => {
4245+ expect ( res . body ) . to . have . property ( 'success' , true ) ;
4246+ } ) ;
4247+ } ) ;
4248+
4249+ it ( 'should be already hidden' , async ( ) => {
4250+ await request
4251+ . post ( api ( 'rooms.hide' ) )
4252+ . set ( credentials )
4253+ . send ( { roomId : roomA . _id } )
4254+ . expect ( 'Content-Type' , 'application/json' )
4255+ . expect ( 400 )
4256+ . expect ( ( res ) => {
4257+ expect ( res . body ) . to . have . property ( 'success' , false ) ;
4258+ expect ( res . body ) . to . have . property ( 'error' , `error-room-already-hidden` ) ;
4259+ } ) ;
4260+ } ) ;
4261+
4262+ it ( 'should fail if roomId is not provided' , async ( ) => {
4263+ await request
4264+ . post ( api ( 'rooms.hide' ) )
4265+ . set ( credentials )
4266+ . send ( )
4267+ . expect ( 'Content-Type' , 'application/json' )
4268+ . expect ( 400 )
4269+ . expect ( ( res : Response ) => {
4270+ expect ( res . body ) . to . have . property ( 'success' , false ) ;
4271+ } ) ;
4272+ } ) ;
4273+
4274+ it ( 'should return 401 if user is not logged in' , async ( ) => {
4275+ await request
4276+ . post ( api ( 'rooms.hide' ) )
4277+ . expect ( 'Content-Type' , 'application/json' )
4278+ . expect ( 401 )
4279+ . expect ( ( res ) => {
4280+ expect ( res . body ) . to . have . property ( 'status' , 'error' ) ;
4281+ expect ( res . body ) . to . have . property ( 'message' ) ;
4282+ } ) ;
4283+ } ) ;
4284+
4285+ it ( 'should return forbidden if user does not have access to the room' , async ( ) => {
4286+ await request
4287+ . post ( api ( 'rooms.hide' ) )
4288+ . set ( nonMemberCredentials )
4289+ . send ( { roomId : roomB . _id } )
4290+ . expect ( 'Content-Type' , 'application/json' )
4291+ . expect ( 401 )
4292+ . expect ( ( res ) => {
4293+ expect ( res . body ) . to . have . property ( 'success' , false ) ;
4294+ } ) ;
4295+ } ) ;
4296+ } ) ;
42074297} ) ;
0 commit comments