Skip to content

Commit fbba325

Browse files
committed
fix(payments): replace assertion errors
Because: - Ensure that assertion errors throw a unique error providing additional information related to the error. This commit: - Where necessary update assertion errors to throw a unique error. - Add tests for all assertion errors. Closes #PAY-3392
1 parent 358c725 commit fbba325

7 files changed

Lines changed: 610 additions & 165 deletions

File tree

libs/payments/cart/src/lib/cart.error.ts

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,97 @@ export class CartIntentNotFoundError extends CartError {
375375
}
376376
}
377377

378+
export class GetCartMissingTaxAddressError extends CartError {
379+
constructor(cartId: string) {
380+
super('Cart must have a tax address', { cartId });
381+
this.name = 'GetCartMissingTaxAddressError';
382+
}
383+
}
384+
385+
export class GetCartFailureFromPriceMissingError extends CartError {
386+
constructor(cartId: string) {
387+
super('fromPrice not present for upgrade cart', { cartId });
388+
this.name = 'GetCartFailureFromPriceMissingError';
389+
}
390+
}
391+
392+
export class GetCartFromPriceMissingError extends CartError {
393+
constructor(cartId: string) {
394+
super('fromPrice not present for upgrade cart', { cartId });
395+
this.name = 'GetCartFromPriceMissingError';
396+
}
397+
}
398+
399+
export class GetCartCustomerMissingError extends CartError {
400+
constructor(cartId: string) {
401+
super('Customer is required for upgrade', { cartId });
402+
this.name = 'GetCartCustomerMissingError';
403+
}
404+
}
405+
406+
export class GetCartSubscriptionMissingError extends CartError {
407+
constructor(cartId: string) {
408+
super('Subscription required', { cartId });
409+
this.name = 'GetCartSubscriptionMissingError';
410+
}
411+
}
412+
413+
export class GetCartLatestInvoicePreviewMissingError extends CartError {
414+
constructor(cartId: string) {
415+
super('latestInvoicePreview not present for success cart', { cartId });
416+
this.name = 'GetCartLatestInvoicePreviewMissingError';
417+
}
418+
}
419+
420+
export class GetCartPaymentInfoMissingError extends CartError {
421+
constructor(cartId: string) {
422+
super('PaymentInfo not present for success cart', { cartId });
423+
this.name = 'GetCartPaymentInfoMissingError';
424+
}
425+
}
426+
427+
export class GetCartIntervalMissingError extends CartError {
428+
constructor(cartId: string) {
429+
super('Interval not found but is required', { cartId });
430+
this.name = 'GetCartIntervalMissingError';
431+
}
432+
}
433+
434+
export class GetCartUnitAmountForCurrencyMissingError extends CartError {
435+
constructor(cartId: string) {
436+
super('Unit amount for currency is required', { cartId });
437+
this.name = 'GetCartUnitAmountForCurrencyMissingError';
438+
}
439+
}
440+
441+
export class GetCartPriceForCurrencyRecurringMissingError extends CartError {
442+
constructor(cartId: string) {
443+
super('Price for currency recurring is required', { cartId });
444+
this.name = 'GetCartPriceForCurrencyRecurringMissingError';
445+
}
446+
}
447+
448+
export class SubmitNeedsInputCustomerIdMissingError extends CartError {
449+
constructor(cartId: string) {
450+
super('Cart must have a stripeCustomerId', { cartId });
451+
this.name = 'SubmitNeedsInputCustomerIdMissingError';
452+
}
453+
}
454+
455+
export class SubmitNeedsInputSubscriptionIdMissingError extends CartError {
456+
constructor(cartId: string) {
457+
super('Cart must have a stripeSubscriptionId', { cartId });
458+
this.name = 'SubmitNeedsInputSubscriptionIdMissingError';
459+
}
460+
}
461+
462+
export class SubmitNeedsInputUidMissingError extends CartError {
463+
constructor(cartId: string) {
464+
super('Cart must have a uid', { cartId });
465+
this.name = 'SubmitNeedsInputUidMissingError';
466+
}
467+
}
468+
378469
export class CartSubscriptionNotFoundError extends CartError {
379470
constructor(message: string, cartId: string, subscriptionId?: string) {
380471
super(message, {

0 commit comments

Comments
 (0)