client/fixtures/productBuilder/testProducts.ts (305 lines of code) (raw):
import type { CurrencyIso } from '../../utilities/currencyIso';
import {
baseContribution,
baseDigitalPack,
baseDigitalVoucher,
baseDigitalVoucherObserver,
baseGuardianAdLite,
baseGuardianWeekly,
baseHomeDelivery,
baseHomeDeliverySundayPlus,
baseMembership,
baseNationalDelivery,
baseObserverDelivery,
basePatron,
baseSupporterPlus,
baseTierThree,
baseVoucher,
} from './baseProducts';
import { cards, ProductBuilder } from './productBuilder';
export function voucherPaidByCard() {
return new ProductBuilder(baseVoucher())
.payByCard()
.getProductDetailObject();
}
export function guardianWeeklyPaidByCard() {
return new ProductBuilder(baseGuardianWeekly())
.payByCard()
.getProductDetailObject();
}
export function guardianWeeklyGiftPurchase() {
return new ProductBuilder(baseGuardianWeekly())
.payByCard()
.gift(false)
.getProductDetailObject();
}
export function guardianWeeklyGiftRecipient() {
return new ProductBuilder(baseGuardianWeekly())
.gift(true)
.getProductDetailObject();
}
export function guardianWeeklyExpiredCard() {
return new ProductBuilder(baseGuardianWeekly())
.payByCard(cards.visaExpired())
.withAlertText(
'Our attempt to take payment for your Guardian Weekly subscription failed on 24/02/2016.',
)
.getProductDetailObject();
}
export function guardianWeeklyCancelled() {
return new ProductBuilder(baseGuardianWeekly())
.payByCard()
.cancel()
.getProductDetailObject();
}
export function digitalPackPaidByDirectDebit() {
return new ProductBuilder(baseDigitalPack())
.payByDirectDebit()
.getProductDetailObject();
}
export function digitalPackWithPaymentFailure() {
return new ProductBuilder(baseDigitalPack())
.payByDirectDebit()
.withAlertText('Payment failed')
.getProductDetailObject();
}
export function digitalPackPaidByCardWithPaymentFailure() {
return new ProductBuilder(baseDigitalPack())
.payByCard()
.withAlertText('Payment failed')
.getProductDetailObject();
}
export function monthlyContributionPaidByCard() {
return new ProductBuilder(baseContribution())
.payByCard()
.withBillingPeriod('month')
.withPrice(400)
.getProductDetailObject();
}
export function annualContributionPaidByCardWithCurrency(
currency: CurrencyIso,
) {
return new ProductBuilder(baseContribution())
.payByCard()
.withBillingPeriod('year')
.withCurrency(currency)
.withPrice(300)
.getProductDetailObject();
}
export function contributionPaidByCard() {
return new ProductBuilder(baseContribution())
.payByCard()
.getProductDetailObject();
}
export function contributionAboveSupporterPlusThreshold() {
return new ProductBuilder(baseContribution())
.payByCard()
.withPrice(1200)
.getProductDetailObject();
}
export function contributionPaidByPayPal() {
return new ProductBuilder(baseContribution())
.payByPayPal()
.getProductDetailObject();
}
export function contributionPaidByPayPalAboveSupporterPlusThreshold() {
return new ProductBuilder(baseContribution())
.payByPayPal()
.withPrice(1200)
.getProductDetailObject();
}
export function contributionPaidByDirectDebit() {
return new ProductBuilder(baseContribution())
.payByDirectDebit()
.getProductDetailObject();
}
export function contributionPaidBySepa() {
return new ProductBuilder(baseContribution())
.payBySepa()
.getProductDetailObject();
}
export function contributionCancelled() {
return new ProductBuilder(baseContribution())
.payByCard()
.cancel()
.getProductDetailObject();
}
export function contributionWithPaymentFailure() {
return new ProductBuilder(baseContribution())
.payByCard()
.withAlertText('Payment failed')
.withPrice(1200)
.getProductDetailObject();
}
export function nonServicedCountryContributor() {
return new ProductBuilder(baseContribution())
.payByCard()
.nonServiceableCountry()
.getProductDetailObject();
}
export function newspaperVoucherObserver() {
return new ProductBuilder(baseDigitalVoucherObserver())
.payByCard()
.getProductDetailObject();
}
export function newspaperVoucherPaidByPaypal(email?: string) {
return new ProductBuilder(baseDigitalVoucher())
.payByPayPal(email)
.getProductDetailObject();
}
export function homeDelivery() {
return new ProductBuilder(baseHomeDelivery())
.payByCard()
.getProductDetailObject();
}
export function homeDeliveryWithInstructions(instructions: string) {
return new ProductBuilder(baseHomeDelivery())
.withDeliveryInstructions(instructions)
.payByCard()
.getProductDetailObject();
}
export function observerDelivery() {
return new ProductBuilder(baseObserverDelivery())
.payByCard()
.getProductDetailObject();
}
export function observerDeliveryPaidByDirectDebit() {
return new ProductBuilder(baseObserverDelivery())
.payByDirectDebit()
.getProductDetailObject();
}
export function nationalDelivery() {
return new ProductBuilder(baseNationalDelivery())
.payByCard()
.getProductDetailObject();
}
export function membershipSupporter() {
return new ProductBuilder(baseMembership())
.payByCard()
.getProductDetailObject();
}
export function membershipSupporterWithOldPrice() {
return new ProductBuilder(baseMembership())
.payByCard()
.withPrice(500)
.getProductDetailObject();
}
export function membershipSupporterAnnual() {
return new ProductBuilder(baseMembership())
.payByDirectDebit()
.withBillingPeriod('year')
.getProductDetailObject();
}
export function membershipSupporterCurrencyUSD() {
return new ProductBuilder(baseMembership())
.payByCard()
.withCurrency('USD')
.getProductDetailObject();
}
export function membershipStaff() {
return new ProductBuilder(baseMembership())
.payByCard()
.tier('Staff Membership')
.withNoCurrentPlans()
.getProductDetailObject();
}
export function supporterPlus() {
return new ProductBuilder(baseSupporterPlus())
.payByCard()
.getProductDetailObject();
}
export function supporterPlusUSA() {
return new ProductBuilder(baseSupporterPlus())
.payByCard()
.inUSA()
.getProductDetailObject();
}
export function supporterPlusMonthlyAllAccessDigital() {
return new ProductBuilder(baseSupporterPlus())
.payByCard()
.withPrice(1200)
.withBillingPeriod('month')
.getProductDetailObject();
}
export function supporterPlusMonthlyAllAccessDigitalBeforePriceRise() {
return new ProductBuilder(baseSupporterPlus())
.payByCard()
.withPrice(1000)
.withBillingPeriod('month')
.getProductDetailObject();
}
export function supporterPlusAnnual() {
return new ProductBuilder(baseSupporterPlus())
.payByCard()
.withPrice(12000)
.withBillingPeriod('year')
.getProductDetailObject();
}
export function supporterPlusAnnualCancelled() {
return new ProductBuilder(baseSupporterPlus())
.payByCard()
.withPrice(12000)
.withBillingPeriod('year')
.cancel()
.getProductDetailObject();
}
export function supporterPlusCancelled() {
return new ProductBuilder(baseSupporterPlus())
.payByCard()
.cancel()
.getProductDetailObject();
}
export function supporterPlusInOfferPeriod() {
return new ProductBuilder(baseSupporterPlus())
.payByCard()
.inOfferPeriod()
.getProductDetailObject();
}
export function guardianAdLite() {
return new ProductBuilder(baseGuardianAdLite())
.payByCard()
.withPotentialCancellationDate()
.getProductDetailObject();
}
export function guardianAdLiteInTrialPeriod() {
return new ProductBuilder(baseGuardianAdLite())
.payByCard()
.inTrialPeriod()
.getProductDetailObject();
}
export function guardianAdLiteCancelled() {
return new ProductBuilder(baseGuardianAdLite())
.payByCard()
.cancel()
.getProductDetailObject();
}
export function tierThree() {
return new ProductBuilder(baseTierThree())
.payByCard()
.getProductDetailObject();
}
export function homeDeliverySundayPlus() {
return new ProductBuilder(baseHomeDeliverySundayPlus())
.payByCard()
.getProductDetailObject();
}
export function patron() {
return new ProductBuilder(basePatron())
.payByCard()
.getProductDetailObject();
}
export function patronDigitalPack() {
return new ProductBuilder(baseDigitalPack())
.payByCard()
.asPatron()
.getProductDetailObject();
}
export function patronMembership() {
return new ProductBuilder(baseMembership())
.payByCard()
.withPrice(10000)
.asPatron()
.asPatronTier()
.withEvents()
.getProductDetailObject();
}