@@ -294,4 +294,76 @@ describe("Test Progress Updates API for Users", function () {
294
294
} ) ;
295
295
} ) ;
296
296
} ) ;
297
+
298
+ describe ( "Verify the GET endpoint for retrieving progress document for the user on a particular date" , function ( ) {
299
+ let userId ;
300
+ let anotherUserId ;
301
+
302
+ beforeEach ( async function ( ) {
303
+ userId = await addUser ( userData [ 0 ] ) ;
304
+ anotherUserId = await addUser ( userData [ 1 ] ) ;
305
+ const progressData = stubbedModelProgressData ( userId , 1683072000000 , 1682985600000 ) ;
306
+ await firestore . collection ( "progresses" ) . doc ( "progressDoc" ) . set ( progressData ) ;
307
+ } ) ;
308
+
309
+ it ( "Returns the progress data for a specific user" , function ( done ) {
310
+ chai
311
+ . request ( app )
312
+ . get ( `/progresses/user/${ userId } /date/2023-05-02` )
313
+ . end ( ( err , res ) => {
314
+ if ( err ) return done ( err ) ;
315
+ expect ( res ) . to . have . status ( 200 ) ;
316
+ expect ( res . body ) . to . have . keys ( [ "message" , "data" ] ) ;
317
+ expect ( res . body . data ) . to . be . an ( "object" ) ;
318
+ expect ( res . body . message ) . to . be . equal ( "Progress document retrieved successfully." ) ;
319
+ expect ( res . body . data ) . to . have . keys ( [
320
+ "id" ,
321
+ "type" ,
322
+ "completed" ,
323
+ "planned" ,
324
+ "blockers" ,
325
+ "userId" ,
326
+ "createdAt" ,
327
+ "date" ,
328
+ ] ) ;
329
+ return done ( ) ;
330
+ } ) ;
331
+ } ) ;
332
+
333
+ it ( "Returns 400 for bad request" , function ( done ) {
334
+ chai
335
+ . request ( app )
336
+ . get ( `/progresses/user/${ userId } /date/2023-05-33` )
337
+ . end ( ( err , res ) => {
338
+ if ( err ) return done ( err ) ;
339
+ expect ( res ) . to . have . status ( 400 ) ;
340
+ expect ( res . body . message ) . to . be . equal ( '"date" must be in ISO 8601 date format' ) ;
341
+ return done ( ) ;
342
+ } ) ;
343
+ } ) ;
344
+
345
+ it ( "Returns 404 for invalid user id" , function ( done ) {
346
+ chai
347
+ . request ( app )
348
+ . get ( `/progresses/user/invalidUserId/date/2023-05-02` )
349
+ . end ( ( err , res ) => {
350
+ if ( err ) return done ( err ) ;
351
+ expect ( res ) . to . have . status ( 404 ) ;
352
+ expect ( res . body . message ) . to . be . equal ( "User with id invalidUserId does not exist." ) ;
353
+ return done ( ) ;
354
+ } ) ;
355
+ } ) ;
356
+
357
+ it ( "Returns 404 if the progress document doesn't exist for the users" , function ( done ) {
358
+ chai
359
+ . request ( app )
360
+ . get ( `/progresses/user/${ anotherUserId } /date/2023-05-02` )
361
+ . end ( ( err , res ) => {
362
+ if ( err ) return done ( err ) ;
363
+ expect ( res ) . to . have . status ( 404 ) ;
364
+ expect ( res . body . message ) . to . be . equal ( "No progress records found." ) ;
365
+ return done ( ) ;
366
+ } ) ;
367
+ } ) ;
368
+ } ) ;
297
369
} ) ;
0 commit comments