All files / apps/timeOff/src/utils dateValue.ts

100% Statements 10/10
100% Branches 18/18
100% Functions 1/1
100% Lines 10/10

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 263x 11x 1x     10x 4x 4x     6x           2x 2x           4x    
export const normalizeDateValue = (date: unknown): Date | null => {
  if (date instanceof Date) {
    return date;
  }
 
  if (typeof date === 'string' || typeof date === 'number') {
    const parsedDate = new Date(date);
    return Number.isNaN(parsedDate.getTime()) ? null : parsedDate;
  }
 
  if (
    date &&
    typeof date === 'object' &&
    'toDate' in date &&
    typeof date.toDate === 'function'
  ) {
    const convertedDate = date.toDate();
    return convertedDate instanceof Date &&
      !Number.isNaN(convertedDate.getTime())
      ? convertedDate
      : null;
  }
 
  return null;
};