@@ -16,6 +16,11 @@ const cookieName = config.get("userToken.cookieName");
16
16
const firestore = require ( "../../utils/firestore" ) ;
17
17
const { userPhotoVerificationData } = require ( "../fixtures/user/photo-verification" ) ;
18
18
const photoVerificationModel = firestore . collection ( "photo-verification" ) ;
19
+ const discordRoleModel = firestore . collection ( "discord-roles" ) ;
20
+ const userModel = firestore . collection ( "users" ) ;
21
+
22
+ const { groupData } = require ( "../fixtures/discordactions/discordactions" ) ;
23
+ const { addGroupRoleToMember } = require ( "../../models/discordactions" ) ;
19
24
chai . use ( chaiHttp ) ;
20
25
21
26
describe ( "Discord actions" , function ( ) {
@@ -85,4 +90,54 @@ describe("Discord actions", function () {
85
90
} ) ;
86
91
} ) ;
87
92
} ) ;
93
+
94
+ describe ( "GET /discord-actions/groups" , function ( ) {
95
+ before ( async function ( ) {
96
+ let allIds = [ ] ;
97
+
98
+ const addUsersPromises = userData . map ( ( user ) => userModel . add ( { ...user } ) ) ;
99
+ const responses = await Promise . all ( addUsersPromises ) ;
100
+ allIds = responses . map ( ( response ) => response . id ) ;
101
+
102
+ const addRolesPromises = [
103
+ discordRoleModel . add ( { roleid : groupData [ 0 ] . roleid , rolename : groupData [ 0 ] . rolename , createdBy : allIds [ 1 ] } ) ,
104
+ discordRoleModel . add ( { roleid : groupData [ 1 ] . roleid , rolename : groupData [ 1 ] . rolename , createdBy : allIds [ 0 ] } ) ,
105
+ ] ;
106
+ await Promise . all ( addRolesPromises ) ;
107
+
108
+ const addGroupRolesPromises = [
109
+ addGroupRoleToMember ( { roleid : groupData [ 0 ] . roleid , userid : allIds [ 0 ] } ) ,
110
+ addGroupRoleToMember ( { roleid : groupData [ 0 ] . roleid , userid : allIds [ 1 ] } ) ,
111
+ addGroupRoleToMember ( { roleid : groupData [ 0 ] . roleid , userid : allIds [ 1 ] } ) ,
112
+ addGroupRoleToMember ( { roleid : groupData [ 1 ] . roleid , userid : allIds [ 0 ] } ) ,
113
+ ] ;
114
+ await Promise . all ( addGroupRolesPromises ) ;
115
+ } ) ;
116
+
117
+ after ( async function ( ) {
118
+ await cleanDb ( ) ;
119
+ } ) ;
120
+
121
+ it ( "should successfully return all groups detail" , function ( done ) {
122
+ chai
123
+ . request ( app )
124
+ . get ( `/discord-actions/groups` )
125
+ . set ( "cookie" , `${ cookieName } =${ superUserAuthToken } ` )
126
+ . end ( ( err , res ) => {
127
+ if ( err ) {
128
+ return done ( err ) ;
129
+ }
130
+
131
+ expect ( res ) . to . have . status ( 200 ) ;
132
+ expect ( res . body ) . to . be . an ( "object" ) ;
133
+ // Verify presence of specific properties in each group
134
+ const expectedProps = [ "roleid" , "rolename" , "memberCount" , "firstName" , "lastName" , "image" ] ;
135
+ res . body . groups . forEach ( ( group ) => {
136
+ expect ( group ) . to . include . all . keys ( expectedProps ) ;
137
+ } ) ;
138
+ expect ( res . body . message ) . to . equal ( "Roles fetched successfully!" ) ;
139
+ return done ( ) ;
140
+ } ) ;
141
+ } ) ;
142
+ } ) ;
88
143
} ) ;
0 commit comments