11const chai = require ( "chai" ) ;
22const { expect } = chai ;
3-
3+ const sinon = require ( "sinon" ) ;
4+ const discordService = require ( "../../services/discordService" ) ;
45const app = require ( "../../server" ) ;
56const addUser = require ( "../utils/addUser" ) ;
67const cleanDb = require ( "../utils/cleanDb" ) ;
@@ -12,6 +13,10 @@ const firestore = require("../../utils/firestore");
1213const discordRoleModel = firestore . collection ( "discord-roles" ) ;
1314const userModel = firestore . collection ( "users" ) ;
1415
16+ const userStatusModel = require ( "../../models/userStatus" ) ;
17+ const { generateUserStatusData } = require ( "../fixtures/userStatus/userStatus" ) ;
18+ const { userState } = require ( "../../constants/userStatus" ) ;
19+
1520const { addGroupRoleToMember } = require ( "../../models/discordactions" ) ;
1621
1722const { groupData } = require ( "../fixtures/discordactions/discordactions" ) ;
@@ -63,47 +68,72 @@ describe("test discord actions", function () {
6368 } ) ;
6469
6570 describe ( "test discord actions for active users" , function ( ) {
71+ let getDiscordMembersStub ;
72+ let userId ;
73+ let jwt ;
74+
6675 beforeEach ( async function ( ) {
67- const user = { ...userData [ 4 ] , discordId : "123456789" } ;
76+ getDiscordMembersStub = sinon . stub ( discordService , "getDiscordMembers" ) . resolves ( [ ] ) ;
77+
78+ const user = {
79+ ...userData [ 4 ] ,
80+ discordId : "123456789" ,
81+ roles : {
82+ in_discord : true ,
83+ archived : false ,
84+ } ,
85+ } ;
6886 userId = await addUser ( user ) ;
87+ await userStatusModel . updateUserStatus ( userId , generateUserStatusData ( userState . ACTIVE , Date . now ( ) , Date . now ( ) ) ) ;
88+
6989 jwt = authService . generateAuthToken ( { userId } ) ;
7090
71- let allIds = [ ] ;
91+ const addUsersPromises = userData . map ( ( u ) => userModel . add ( { ... u } ) ) ;
7292
73- const addUsersPromises = userData . map ( ( user ) => userModel . add ( { ...user } ) ) ;
7493 const responses = await Promise . all ( addUsersPromises ) ;
75- allIds = responses . map ( ( response ) => response . id ) ;
76-
77- const addRolesPromises = [
78- discordRoleModel . add ( { roleid : groupData [ 0 ] . roleid , rolename : groupData [ 0 ] . rolename , createdBy : allIds [ 1 ] } ) ,
79- discordRoleModel . add ( { roleid : groupData [ 1 ] . roleid , rolename : groupData [ 1 ] . rolename , createdBy : allIds [ 0 ] } ) ,
80- ] ;
81- await Promise . all ( addRolesPromises ) ;
82-
83- const addGroupRolesPromises = [
84- addGroupRoleToMember ( { roleid : groupData [ 0 ] . roleid , userid : allIds [ 0 ] } ) ,
85- addGroupRoleToMember ( { roleid : groupData [ 0 ] . roleid , userid : allIds [ 1 ] } ) ,
86- addGroupRoleToMember ( { roleid : groupData [ 0 ] . roleid , userid : allIds [ 1 ] } ) ,
87- addGroupRoleToMember ( { roleid : groupData [ 1 ] . roleid , userid : allIds [ 0 ] } ) ,
88- ] ;
89- await Promise . all ( addGroupRolesPromises ) ;
94+ const allIds = responses . map ( ( r ) => r . id ) ;
95+
96+ await Promise . all ( [
97+ discordRoleModel . add ( {
98+ roleid : groupData [ 0 ] . roleid ,
99+ rolename : groupData [ 0 ] . rolename ,
100+ createdBy : allIds [ 1 ] ,
101+ } ) ,
102+ discordRoleModel . add ( {
103+ roleid : groupData [ 1 ] . roleid ,
104+ rolename : groupData [ 1 ] . rolename ,
105+ createdBy : allIds [ 0 ] ,
106+ } ) ,
107+ ] ) ;
108+
109+ await Promise . all ( [
110+ addGroupRoleToMember ( {
111+ roleid : groupData [ 0 ] . roleid ,
112+ userid : allIds [ 0 ] ,
113+ } ) ,
114+ addGroupRoleToMember ( {
115+ roleid : groupData [ 0 ] . roleid ,
116+ userid : allIds [ 1 ] ,
117+ } ) ,
118+ addGroupRoleToMember ( {
119+ roleid : groupData [ 1 ] . roleid ,
120+ userid : allIds [ 0 ] ,
121+ } ) ,
122+ ] ) ;
90123 } ) ;
91124
92125 afterEach ( async function ( ) {
126+ getDiscordMembersStub . restore ( ) ;
93127 await cleanDb ( ) ;
94128 } ) ;
95129
96- it ( "returns 200 for active users get method" , function ( done ) {
97- chai
130+ it ( "returns 200 for active users get method" , function ( ) {
131+ return chai
98132 . request ( app )
99133 . get ( "/discord-actions/groups" )
100- . set ( "Cookie" , `${ cookieName } =${ jwt } ` )
101- . end ( ( err , res ) => {
102- if ( err ) {
103- return done ( err ) ;
104- }
134+ . set ( "cookie" , `rds-session=${ jwt } ` )
135+ . then ( ( res ) => {
105136 expect ( res ) . to . have . status ( 200 ) ;
106- return done ( ) ;
107137 } ) ;
108138 } ) ;
109139 } ) ;
0 commit comments