All files / nanakshahi-js/lib getGurpurabsForDay.js

19.04% Statements 4/21
0% Branches 0/7
0% Functions 0/3
19.04% Lines 4/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 463x 3x 3x                                                                                   3x  
const findMovableGurpurab = require( './findMovableGurpurab' )
const getNanakshahiDate = require( './getNanakshahiDate' )
const { gurpurabs } = require( './consts' )
 
/**
 * Returns all Gurpurabs for a Date
 * @param {Object} [gregorianDate=new Date()] JavaScript Date() Object
 * @return {Array} Gurpurabs for the day with Date and name in English and Punjabi
 * @example getGurpurabsForDay( new Date() )
 */
function getGurpurabsForDay( gregorianDate = new Date() ) {
  // Get Date Info
  const nanakshahi = getNanakshahiDate( gregorianDate )
  const { month, date } = nanakshahi.englishDate
 
  // Get Fesitval date for specific Nanakshahi Month
  const calendarDates = gurpurabs[ month ]
 
  // Check if there is Fesitval on Date
  let gurpurabsList = []
  calendarDates.every( value => {
    if ( value.date === date ) {
      gurpurabsList = [ ...value.gurpurabs ]
      return false
    }
    return true
  } )
 
  // Get Movable Gurpurabs
  let movableDate
  const movableGurpurabs = [ 'ravidaas', 'holla', 'kabeer', 'bandichhorr', 'naamdev', 'gurunanak' ]
  movableGurpurabs.every( value => {
    movableDate = findMovableGurpurab( value, gregorianDate.getFullYear() )
    if ( movableDate.gregorianDate.getMonth() === gregorianDate.getMonth()
    && movableDate.gregorianDate.getDate() === gregorianDate.getDate() ) {
      gurpurabsList.push( movableDate.name )
      return false
    }
    return true
  } )
 
  return gurpurabsList
}
 
module.exports = getGurpurabsForDay