@@ -14,18 +14,17 @@ const {
1414} = require ( "../fixtures/progress/progresses" ) ;
1515
1616const userData = require ( "../fixtures/user/user" ) ( ) ;
17- const { INTERNAL_SERVER_ERROR_MESSAGE } = require ( "../../constants/progresses" ) ;
17+ const withDiscordMembership = require ( "../utils/withDiscordMembership" ) ;
18+ const { INTERNAL_SERVER_ERROR_MESSAGE , UNAUTHORIZED_WRITE } = require ( "../../constants/progresses" ) ;
1819const cookieName = config . get ( "userToken.cookieName" ) ;
1920const { expect } = chai ;
2021
21- // eslint-disable-next-line mocha/no-skipped-tests
22- describe . skip ( "Test Progress Updates API for Users" , function ( ) {
22+ describe ( "Test Progress Updates API for Users" , function ( ) {
2323 afterEach ( async function ( ) {
2424 await cleanDb ( ) ;
2525 } ) ;
2626
27- // eslint-disable-next-line mocha/no-skipped-tests
28- describe . skip ( "Verify the POST progress records" , function ( ) {
27+ describe ( "Verify the POST progress records" , function ( ) {
2928 let clock ;
3029 let userId ;
3130 let userToken ;
@@ -39,9 +38,9 @@ describe.skip("Test Progress Updates API for Users", function () {
3938 now : new Date ( Date . UTC ( 2023 , 4 , 2 , 0 , 25 ) ) . getTime ( ) , // UTC time equivalent to 5:55 AM IST
4039 toFake : [ "Date" ] ,
4140 } ) ;
42- userId = await addUser ( userData [ 1 ] ) ;
41+ userId = await addUser ( withDiscordMembership ( userData [ 1 ] ) ) ;
4342 userToken = authService . generateAuthToken ( { userId : userId } ) ;
44- anotherUserId = await addUser ( userData [ 8 ] ) ;
43+ anotherUserId = await addUser ( withDiscordMembership ( userData [ 8 ] ) ) ;
4544 anotherUserToken = authService . generateAuthToken ( { userId : anotherUserId } ) ;
4645 const progressData = stubbedModelProgressData ( anotherUserId , 1682935200000 , 1682899200000 ) ;
4746 await firestore . collection ( "progresses" ) . doc ( "anotherUserProgressDocument" ) . set ( progressData ) ;
@@ -159,6 +158,26 @@ describe.skip("Test Progress Updates API for Users", function () {
159158 return done ( ) ;
160159 } ) ;
161160 } ) ;
161+
162+ it ( "Returns forbidden error when user is not in discord" , async function ( ) {
163+ const nonDiscordFixture = {
164+ ...userData [ 1 ] ,
165+ username : `${ ( userData [ 1 ] . username || "user" ) . split ( "-" ) [ 0 ] } -non-discord` ,
166+ github_id : `${ userData [ 1 ] . github_id || "github" } -non-discord-${ Date . now ( ) } ` ,
167+ roles : { ...( userData [ 1 ] . roles || { } ) , archived : false , in_discord : false } ,
168+ } ;
169+ const nonDiscordUserId = await addUser ( nonDiscordFixture ) ;
170+ const nonDiscordToken = authService . generateAuthToken ( { userId : nonDiscordUserId } ) ;
171+
172+ const res = await chai
173+ . request ( app )
174+ . post ( "/progresses" )
175+ . set ( "Cookie" , `${ cookieName } =${ nonDiscordToken } ` )
176+ . send ( standupProgressDay1 ) ;
177+
178+ expect ( res ) . to . have . status ( 403 ) ;
179+ expect ( res . body . message ) . to . equal ( UNAUTHORIZED_WRITE ) ;
180+ } ) ;
162181 } ) ;
163182
164183 describe ( "Verify the GET progress records" , function ( ) {
@@ -167,9 +186,9 @@ describe.skip("Test Progress Updates API for Users", function () {
167186 let userId3 ;
168187
169188 beforeEach ( async function ( ) {
170- userId1 = await addUser ( userData [ 0 ] ) ;
171- userId2 = await addUser ( userData [ 1 ] ) ;
172- userId3 = await addUser ( userData [ 2 ] ) ;
189+ userId1 = await addUser ( withDiscordMembership ( userData [ 0 ] ) ) ;
190+ userId2 = await addUser ( withDiscordMembership ( userData [ 1 ] ) ) ;
191+ userId3 = await addUser ( withDiscordMembership ( userData [ 2 ] ) ) ;
173192 const progressData1 = stubbedModelProgressData ( userId1 , 1683957764140 , 1683936000000 ) ;
174193 const progressData2 = stubbedModelProgressData ( userId2 , 1683957764140 , 1683936000000 ) ;
175194 await firestore . collection ( "progresses" ) . doc ( "progressDoc1" ) . set ( progressData1 ) ;
@@ -272,8 +291,8 @@ describe.skip("Test Progress Updates API for Users", function () {
272291 let userId2 ;
273292
274293 beforeEach ( async function ( ) {
275- userId = await addUser ( userData [ 1 ] ) ;
276- userId2 = await addUser ( userData [ 2 ] ) ;
294+ userId = await addUser ( withDiscordMembership ( userData [ 1 ] ) ) ;
295+ userId2 = await addUser ( withDiscordMembership ( userData [ 2 ] ) ) ;
277296 const progressData1 = stubbedModelProgressData ( userId , 1683626400000 , 1683590400000 ) ; // 2023-05-09
278297 const progressData2 = stubbedModelProgressData ( userId , 1683885600000 , 1683849600000 ) ; // 2023-05-12
279298 await firestore . collection ( "progresses" ) . doc ( "progressDoc1" ) . set ( progressData1 ) ;
@@ -344,8 +363,8 @@ describe.skip("Test Progress Updates API for Users", function () {
344363 let anotherUserId ;
345364
346365 beforeEach ( async function ( ) {
347- userId = await addUser ( userData [ 0 ] ) ;
348- anotherUserId = await addUser ( userData [ 1 ] ) ;
366+ userId = await addUser ( withDiscordMembership ( userData [ 0 ] ) ) ;
367+ anotherUserId = await addUser ( withDiscordMembership ( userData [ 1 ] ) ) ;
349368 const progressData = stubbedModelProgressData ( userId , 1683072000000 , 1682985600000 ) ;
350369 await firestore . collection ( "progresses" ) . doc ( "progressDoc" ) . set ( progressData ) ;
351370 } ) ;
@@ -427,8 +446,8 @@ describe.skip("Test Progress Updates API for Users", function () {
427446
428447 describe ( "GET /progresses (getPaginatedProgressDocument)" , function ( ) {
429448 beforeEach ( async function ( ) {
430- const userId1 = await addUser ( userData [ 0 ] ) ;
431- const userId2 = await addUser ( userData [ 1 ] ) ;
449+ const userId1 = await addUser ( withDiscordMembership ( userData [ 0 ] ) ) ;
450+ const userId2 = await addUser ( withDiscordMembership ( userData [ 1 ] ) ) ;
432451 const progressData1 = stubbedModelProgressData ( userId1 , 1683957764140 , 1683936000000 ) ;
433452 const progressData2 = stubbedModelProgressData ( userId2 , 1683957764140 , 1683936000000 ) ;
434453 await firestore . collection ( "progresses" ) . doc ( "progressDoc1" ) . set ( progressData1 ) ;
0 commit comments