All files / services subscription.ts

0% Statements 0/14
0% Branches 0/13
0% Functions 0/2
0% Lines 0/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                                               
import type { BeneficiarySubscription } from '@/types';
 
export const isSubscriptionActive = (
  subscription?: BeneficiarySubscription
): boolean => {
  return subscription?.status === 'active' ||
    subscription?.status === 'expiring_soon' ||
    subscription?.status === 'trialing';
};
 
export const isSubscriptionExpiringSoon = (
  subscription?: BeneficiarySubscription
): boolean => {
  if (!subscription) return false;
  if (subscription.status === 'expiring_soon') return true;
  if (!subscription.cancelAtPeriodEnd || !subscription.endDate) return false;
 
  const endTime = new Date(subscription.endDate).getTime();
  if (Number.isNaN(endTime)) return false;
 
  const daysLeft = (endTime - Date.now()) / (1000 * 60 * 60 * 24);
  return daysLeft <= 7;
};