@@ -319,4 +319,81 @@ describe("Test Progress Updates API for Tasks", function () {
319
319
} ) ;
320
320
} ) ;
321
321
} ) ;
322
+
323
+ describe ( "Verify the GET endpoint for retrieving progress document for the user on a particular date" , function ( ) {
324
+ let userId ;
325
+ let taskId ;
326
+ let anotherTaskId ;
327
+
328
+ beforeEach ( async function ( ) {
329
+ userId = await addUser ( userData [ 0 ] ) ;
330
+ const taskObject = await tasks . updateTask ( taskData [ 0 ] ) ;
331
+ taskId = taskObject . taskId ;
332
+ const anotherTaskObject = await tasks . updateTask ( taskData [ 0 ] ) ;
333
+ anotherTaskId = anotherTaskObject . taskId ;
334
+ const progressData = stubbedModelTaskProgressData ( userId , taskId , 1683072000000 , 1682985600000 ) ;
335
+ await firestore . collection ( "progresses" ) . doc ( "progressDoc" ) . set ( progressData ) ;
336
+ } ) ;
337
+
338
+ it ( "Returns the progress data for a specific task" , function ( done ) {
339
+ chai
340
+ . request ( app )
341
+ . get ( `/progresses/task/${ taskId } /date/2023-05-02` )
342
+ . end ( ( err , res ) => {
343
+ if ( err ) return done ( err ) ;
344
+ expect ( res ) . to . have . status ( 200 ) ;
345
+ expect ( res . body ) . to . have . keys ( [ "message" , "data" ] ) ;
346
+ expect ( res . body . data ) . to . be . an ( "object" ) ;
347
+ expect ( res . body . message ) . to . be . equal ( "Progress document retrieved successfully." ) ;
348
+ expect ( res . body . data ) . to . have . keys ( [
349
+ "id" ,
350
+ "type" ,
351
+ "completed" ,
352
+ "planned" ,
353
+ "blockers" ,
354
+ "userId" ,
355
+ "taskId" ,
356
+ "createdAt" ,
357
+ "date" ,
358
+ ] ) ;
359
+ return done ( ) ;
360
+ } ) ;
361
+ } ) ;
362
+
363
+ it ( "Returns 400 for bad request" , function ( done ) {
364
+ chai
365
+ . request ( app )
366
+ . get ( `/progresses/task/${ taskId } /date/2023-05-33` )
367
+ . end ( ( err , res ) => {
368
+ if ( err ) return done ( err ) ;
369
+ expect ( res ) . to . have . status ( 400 ) ;
370
+ expect ( res . body . message ) . to . be . equal ( '"date" must be in ISO 8601 date format' ) ;
371
+ return done ( ) ;
372
+ } ) ;
373
+ } ) ;
374
+
375
+ it ( "Returns 404 for invalid task id" , function ( done ) {
376
+ chai
377
+ . request ( app )
378
+ . get ( `/progresses/task/invalidTaskId/date/2023-05-02` )
379
+ . end ( ( err , res ) => {
380
+ if ( err ) return done ( err ) ;
381
+ expect ( res ) . to . have . status ( 404 ) ;
382
+ expect ( res . body . message ) . to . be . equal ( "Task with id invalidTaskId does not exist." ) ;
383
+ return done ( ) ;
384
+ } ) ;
385
+ } ) ;
386
+
387
+ it ( "Returns 404 if the progress document doesn't exist for the task" , function ( done ) {
388
+ chai
389
+ . request ( app )
390
+ . get ( `/progresses/task/${ anotherTaskId } /date/2023-05-02` )
391
+ . end ( ( err , res ) => {
392
+ if ( err ) return done ( err ) ;
393
+ expect ( res ) . to . have . status ( 404 ) ;
394
+ expect ( res . body . message ) . to . be . equal ( "No progress records found." ) ;
395
+ return done ( ) ;
396
+ } ) ;
397
+ } ) ;
398
+ } ) ;
322
399
} ) ;
0 commit comments