@@ -1579,6 +1579,105 @@ describe("Users", function () {
15791579 } ) ;
15801580 } ) ;
15811581
1582+ describe ( "PUT /users/:userId/intro" , function ( ) {
1583+ let userStatusData ;
1584+
1585+ beforeEach ( async function ( ) {
1586+ await userStatusModel . updateUserStatus ( userId , userStatusDataAfterSignup ) ;
1587+ const updateStatus = await userStatusModel . updateUserStatus ( userId , userStatusDataAfterFillingJoinSection ) ;
1588+ userStatusData = ( await firestore . collection ( "usersStatus" ) . doc ( updateStatus . id ) . get ( ) ) . data ( ) ;
1589+ } ) ;
1590+
1591+ it ( "should return 409 if the data already present" , function ( done ) {
1592+ addJoinData ( joinData ( userId ) [ 3 ] ) ;
1593+ chai
1594+ . request ( app )
1595+ . put ( `/users/${ userId } /intro?dev=true` )
1596+ . set ( "Cookie" , `${ cookieName } =${ jwt } ` )
1597+ . send ( joinData ( userId ) [ 3 ] )
1598+ . end ( ( err , res ) => {
1599+ if ( err ) {
1600+ return done ( err ) ;
1601+ }
1602+ expect ( res ) . to . have . status ( 409 ) ;
1603+ expect ( res . body ) . to . be . a ( "object" ) ;
1604+ expect ( res . body . message ) . to . equal ( "User data is already present!" ) ;
1605+ return done ( ) ;
1606+ } ) ;
1607+ } ) ;
1608+
1609+ it ( "Should store the info in db" , function ( done ) {
1610+ chai
1611+ . request ( app )
1612+ . put ( `/users/${ userId } /intro?dev=true` )
1613+ . set ( "Cookie" , `${ cookieName } =${ jwt } ` )
1614+ . send ( joinData ( ) [ 2 ] )
1615+ . end ( ( err , res ) => {
1616+ if ( err ) {
1617+ return done ( err ) ;
1618+ }
1619+ expect ( res ) . to . have . status ( 201 ) ;
1620+ expect ( res . body ) . to . be . a ( "object" ) ;
1621+ expect ( res . body . message ) . to . equal ( "User join data and newstatus data added and updated successfully" ) ;
1622+ expect ( userStatusData ) . to . have . own . property ( "currentStatus" ) ;
1623+ expect ( userStatusData ) . to . have . own . property ( "monthlyHours" ) ;
1624+ expect ( userStatusData . currentStatus . state ) . to . equal ( "ONBOARDING" ) ;
1625+ expect ( userStatusData . monthlyHours . committed ) . to . equal ( 40 ) ;
1626+ return done ( ) ;
1627+ } ) ;
1628+ } ) ;
1629+
1630+ it ( "Should return 401 for unauthorized request" , function ( done ) {
1631+ chai
1632+ . request ( app )
1633+ . put ( `/users/${ userId } /intro?dev=true` )
1634+ . set ( "Cookie" , `${ cookieName } =""` )
1635+ . send ( joinData ( ) [ 2 ] )
1636+ . end ( ( err , res ) => {
1637+ if ( err ) {
1638+ return done ( err ) ;
1639+ }
1640+ expect ( res ) . to . have . status ( 401 ) ;
1641+ expect ( res . body ) . to . be . a ( "object" ) ;
1642+ return done ( ) ;
1643+ } ) ;
1644+ } ) ;
1645+
1646+ it ( "Should return 400 for invalid Data" , function ( done ) {
1647+ chai
1648+ . request ( app )
1649+ . put ( `/users/${ userId } /intro?dev=true` )
1650+ . set ( "Cookie" , `${ cookieName } =${ jwt } ` )
1651+ . send ( joinData ( ) [ 1 ] )
1652+ . end ( ( err , res ) => {
1653+ if ( err ) {
1654+ return done ( err ) ;
1655+ }
1656+ expect ( res ) . to . have . status ( 400 ) ;
1657+ expect ( res . body ) . to . be . a ( "object" ) ;
1658+ expect ( res . body . message ) . to . be . equal ( '"firstName" is required' ) ;
1659+ return done ( ) ;
1660+ } ) ;
1661+ } ) ;
1662+
1663+ it ( "Should return 403 for Unauthorized access" , function ( done ) {
1664+ chai
1665+ . request ( app )
1666+ . put ( `/users/${ userId } /intro?dev=true` )
1667+ . set ( "Cookie" , `${ cookieName } =${ jwt } ` )
1668+ . send ( joinData ( ) [ 1 ] )
1669+ . end ( ( err , res ) => {
1670+ if ( err ) {
1671+ return done ( err ) ;
1672+ }
1673+ expect ( res ) . to . have . status ( 400 ) ;
1674+ expect ( res . body ) . to . be . a ( "object" ) ;
1675+ expect ( res . body . message ) . to . be . equal ( '"firstName" is required' ) ;
1676+ return done ( ) ;
1677+ } ) ;
1678+ } ) ;
1679+ } ) ;
1680+
15821681 describe ( "PATCH /users/rejectDiff" , function ( ) {
15831682 let profileDiffsId ;
15841683
0 commit comments