@@ -15,9 +15,15 @@ const mockResponse = () => {
1515 return res ;
1616} ;
1717
18+ const mockSocket = ( ) => {
19+ const socket = { } ;
20+ socket . emit = jest . fn ( ) . mockReturnValue ( socket ) ;
21+ return socket ;
22+ } ;
23+
1824const newUser = async ( title , verifyCode ) => {
1925 let code , verified ;
20- if ( ! code ) {
26+ if ( ! verifyCode ) {
2127 code = "verified" ;
2228 verified = true ;
2329 } else {
@@ -78,7 +84,7 @@ describe("Test user controller", () => {
7884 const res = mockResponse ( ) ;
7985
8086 await userController . register ( req , res ) ;
81- expect ( res . status ) . toHaveBeenCalledWith ( 201 ) ;
87+ expect ( res . status ) . toHaveBeenCalledWith ( 202 ) ;
8288 expect ( res . json ) . toHaveBeenCalledWith ( expect . any ( Object ) ) ;
8389 } ) ;
8490
@@ -87,13 +93,29 @@ describe("Test user controller", () => {
8793
8894 await newUser ( "confirmTest" , code ) ;
8995
90- const req = mockRequest ( { body : { code } } ) ;
96+ const req = mockRequest ( { body : { username : "confirmTest" , code } } ) ;
9197 const res = mockResponse ( ) ;
9298
9399 await userController . confirm ( req , res ) ;
100+
101+ const user = await User . findOne ( { username : "confirmTest" } ) ;
102+
94103 expect ( res . status ) . toHaveBeenCalledWith ( 200 ) ;
95104 expect ( res . json ) . toHaveBeenCalledWith ( {
96105 message : "User confirmed" ,
106+ user,
107+ } ) ;
108+
109+ const request = mockRequest ( {
110+ body : "invalidConfirm" ,
111+ code : "undefined" ,
112+ } ) ;
113+ const response = mockResponse ( ) ;
114+
115+ await userController . confirm ( request , response ) ;
116+ expect ( response . status ) . toHaveBeenCalledWith ( 404 ) ;
117+ expect ( response . json ) . toHaveBeenCalledWith ( {
118+ error : "User not found" ,
97119 } ) ;
98120 } ) ;
99121
@@ -104,62 +126,50 @@ describe("Test user controller", () => {
104126 var user1 = await findUser ( "addPending1" ) ;
105127 var user2 = await findUser ( "addPending2" ) ;
106128
107- const req = mockRequest ( {
108- userId : user1 . _id ,
109- body : { friendId : user2 . _id } ,
110- } ) ;
111- const res = mockResponse ( ) ;
129+ const socket = mockSocket ( ) ;
112130
113- await userController . addPending ( req , res ) ;
131+ await userController . addPending ( user1 , user2 , socket ) ;
114132
115133 user1 = await findUser ( "addPending1" ) ;
116134 user2 = await findUser ( "addPending2" ) ;
117135
118- expect ( user1 . pending [ 0 ] . toString ( "base64" ) ) . toBe (
136+ expect ( user1 . pending [ 0 ] . id . toString ( "base64" ) ) . toBe (
119137 user2 . _id . toString ( "base64" )
120138 ) ;
121- expect ( user2 . requests [ 0 ] . toString ( "base64" ) ) . toBe (
139+ expect ( user1 . pending [ 0 ] . username ) . toBe ( user2 . username ) ;
140+ expect ( user2 . requests [ 0 ] . id . toString ( "base64" ) ) . toBe (
122141 user1 . _id . toString ( "base64" )
123142 ) ;
124- expect ( res . status ) . toHaveBeenCalledWith ( 200 ) ;
125- expect ( res . json ) . toHaveBeenCalledWith ( {
126- error : "Pending added" ,
127- } ) ;
143+ expect ( user2 . requests [ 0 ] . username ) . toBe ( user1 . username ) ;
144+ expect ( socket . emit ) . toHaveBeenCalledTimes ( 1 ) ;
128145 } ) ;
129146
130147 test ( "Test removePending function" , async ( ) => {
131148 await newUser ( "removePending1" ) ;
132149 await newUser ( "removePending2" ) ;
133150
134- var user1 = await findUser ( "removePending1" ) ;
135- var user2 = await findUser ( "removePending2" ) ;
151+ let user1 = await findUser ( "removePending1" ) ;
152+ let user2 = await findUser ( "removePending2" ) ;
136153
137154 await User . findOneAndUpdate (
138- { _id : user1 . _id } ,
139- { $push : { pending : user2 . _id } }
155+ { _id : user2 . _id } ,
156+ { $push : { pending : { id : user1 . _id , username : user1 . username } } }
140157 ) ;
141158 await User . findOneAndUpdate (
142- { _id : user2 . _id } ,
143- { $push : { requests : user1 . _id } }
159+ { _id : user1 . _id } ,
160+ { $push : { requests : { id : user2 . _id , username : user2 . username } } }
144161 ) ;
145162
146- const req = mockRequest ( {
147- userId : user1 . _id ,
148- body : { friendId : user2 . _id } ,
149- } ) ;
150- const res = mockResponse ( ) ;
163+ const socket = mockSocket ( ) ;
151164
152- await userController . removePending ( req , res ) ;
165+ await userController . removePending ( user1 , user2 , socket ) ;
153166
154- var user1 = await findUser ( "removePending1" ) ;
155- var user2 = await findUser ( "removePending2" ) ;
167+ user1 = await findUser ( "removePending1" ) ;
168+ user2 = await findUser ( "removePending2" ) ;
156169
157- expect ( user1 . pending ) . toHaveLength ( 0 ) ;
158- expect ( user2 . requests ) . toHaveLength ( 0 ) ;
159- expect ( res . status ) . toHaveBeenCalledWith ( 200 ) ;
160- expect ( res . json ) . toHaveBeenCalledWith ( {
161- error : "Pending removed" ,
162- } ) ;
170+ expect ( user1 . requests ) . toHaveLength ( 0 ) ;
171+ expect ( user2 . pending ) . toHaveLength ( 0 ) ;
172+ expect ( socket . emit ) . toHaveBeenCalledTimes ( 1 ) ;
163173 } ) ;
164174
165175 test ( "Test addFriend function" , async ( ) => {
@@ -178,27 +188,24 @@ describe("Test user controller", () => {
178188 { $push : { requests : user1 . _id } }
179189 ) ;
180190
181- const req = mockRequest ( {
182- userId : user1 . _id ,
183- body : { friendId : user2 . _id } ,
184- } ) ;
185- const res = mockResponse ( ) ;
191+ const socket = mockSocket ( ) ;
186192
187- await userController . addFriend ( req , res ) ;
193+ await userController . addFriend ( user1 , user2 , socket ) ;
188194
189195 user1 = await findUser ( "addFriend1" ) ;
190196 user2 = await findUser ( "addFriend2" ) ;
191197
192- expect ( user1 . friendList [ 0 ] . toString ( "base64" ) ) . toBe (
198+ expect ( user1 . friendList [ 0 ] . id . toString ( "base64" ) ) . toBe (
193199 user2 . _id . toString ( "base64" )
194200 ) ;
195- expect ( user2 . friendList [ 0 ] . toString ( "base64" ) ) . toBe (
201+ expect ( user1 . friendList [ 0 ] . name ) . toBe ( user2 . name ) ;
202+ expect ( user1 . friendList [ 0 ] . username ) . toBe ( user2 . username ) ;
203+ expect ( user2 . friendList [ 0 ] . id . toString ( "base64" ) ) . toBe (
196204 user1 . _id . toString ( "base64" )
197205 ) ;
198- expect ( res . status ) . toHaveBeenCalledWith ( 200 ) ;
199- expect ( res . json ) . toHaveBeenCalledWith ( {
200- error : "Friend added" ,
201- } ) ;
206+ expect ( user2 . friendList [ 0 ] . name ) . toBe ( user1 . name ) ;
207+ expect ( user2 . friendList [ 0 ] . username ) . toBe ( user1 . username ) ;
208+ expect ( socket . emit ) . toHaveBeenCalledTimes ( 1 ) ;
202209 } ) ;
203210
204211 test ( "add friend" , async ( ) => {
0 commit comments