import { addDays, subMonths } from 'date-fns' import { factory } from 'factory-bot' import { datatype, date } from 'faker' import { sample } from 'lodash' import { SubscriptionSmartfit } from '../../src/models/subscription_smartfit.model' import { countryByCode } from '../../src/utils/countries' factory.define( 'subscription_smartfit', SubscriptionSmartfit, { addonDescription: 'Smart Nutri', documentNumber: datatype.uuid(), countryCode: sample(Object.entries(countryByCode)), purchasedAt: subMonths(new Date(), 1), cancelledAt: subMonths(new Date(), 1), trialExpiresAt: addDays(subMonths(new Date(), 1), 7), cancellationRequestedAt: subMonths(new Date(), 1), }, SubscriptionSmartfit, ) factory.extend('subscription_smartfit', 'subscription_smartfit:active', { cancelledAt: null, cancellationRequestedAt: null, }) factory.extend('subscription_smartfit', 'subscription_smartfit:cancelled', { cancelledAt: date.recent(1), cancellationRequestedAt: subMonths(new Date(), 1), }) factory.extend('subscription_smartfit', 'subscription_smartfit:in_cancellation', { cancelledAt: null, cancellationRequestedAt: subMonths(new Date(), 1), }) export { factory }