import { factory } from 'factory-bot' import { datatype, date } from 'faker' factory.define( 'apple:receipt', Object, { cancellation_date: () => null, cancellation_date_ms: () => null, cancellation_date_pst: () => null, cancellation_reason: () => null, expires_date: () => date.future().getTime(), expires_date_ms: () => date.future().getTime(), expires_date_pst: () => date.future().getTime(), is_upgraded: () => datatype.boolean(), original_purchase_date: () => date.past().getTime(), original_purchase_date_ms: () => date.past().getTime(), original_purchase_date_pst: () => date.past().getTime(), original_transaction_id: () => date.past().getTime(), product_id: () => datatype.uuid(), promotional_offer_id: () => null, purchase_date: () => date.past().getTime(), purchase_date_ms: () => date.past().getTime(), purchase_date_pst: () => date.past().getTime(), quantity: () => datatype.number(10), subscription_group_identifier: () => null, transaction_id: () => datatype.uuid(), web_order_line_item_id: () => null, }, Object, ) factory.extend('apple:receipt', 'apple:receipt:trial', { is_trial_period: () => true, }) factory.extend('apple:receipt', 'apple:receipt:trial:intro', { is_in_intro_offer_period: () => true, }) factory.define( 'apple:subscription_info', Object, { expiration: () => date.future(), trialExpiration: () => date.future(), externalPlan: datatype.uuid, externalSubscriptionIdentifier: datatype.uuid, purchasedAt: () => date.recent(), originalTransaction: datatype.uuid, receipt: datatype.uuid, }, Object, ) export { factory }