From e203590cd31e8caddbbc6e8b45e68160121d88ac Mon Sep 17 00:00:00 2001 From: DurdonaBakhronova Date: Mon, 23 Dec 2024 16:25:16 +0500 Subject: [PATCH] chore: [LM-1693] Changed Payment Methods order --- src/PaymentMethod.ts | 61 ++++++++++++++++++++++++++++++++++--- src/__tests__/index.spec.ts | 44 ++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 4 deletions(-) diff --git a/src/PaymentMethod.ts b/src/PaymentMethod.ts index 5865a0f..4072aa2 100644 --- a/src/PaymentMethod.ts +++ b/src/PaymentMethod.ts @@ -1,5 +1,60 @@ import { toStartCase } from './internal/toStartCase'; +export type PaymentMethod = + | 'superpay' + | 'cash' + | 'check' + | 'cashiers_check' + | 'money_order' + | 'comchek' + | 'credit_card' + | 'ach' + | 'direct_deposit' + | 'venmo' + | 'cashapp' + | 'uship' + | 'zelle' + | 'other'; + +export const SUPERPAY_PAYMENT_METHODS: PaymentMethod[] = ['superpay']; + +export const CASH_PAYMENT_METHODS: PaymentMethod[] = ['cash']; + +export const CHECK_PAYMENT_METHODS: PaymentMethod[] = [ + 'check', + 'cashiers_check', + 'money_order', + 'comchek', +]; + +export const ACH_PAYMENT_METHODS: PaymentMethod[] = ['ach', 'direct_deposit']; + +export const CREDIT_CARD_PAYMENT_METHODS: PaymentMethod[] = ['credit_card']; + +export const ELECTRONIC_PAYMENT_METHODS: PaymentMethod[] = [ + 'venmo', + 'cashapp', + 'uship', + 'zelle', +]; + +export const OTHER_PAYMENT_METHODS: PaymentMethod[] = ['other']; + +const ALL_PAYMENT_METHODS_SET = new Set([ + ...SUPERPAY_PAYMENT_METHODS, + ...CASH_PAYMENT_METHODS, + ...CHECK_PAYMENT_METHODS, + ...ACH_PAYMENT_METHODS, + ...CREDIT_CARD_PAYMENT_METHODS, + ...ELECTRONIC_PAYMENT_METHODS, + ...OTHER_PAYMENT_METHODS, +]); + +export const ALL_PAYMENT_METHODS: PaymentMethod[] = Array.from( + ALL_PAYMENT_METHODS_SET, +); + +// @deprecated – use `ALL_PAYMENT_METHODS` export const PAYMENT_METHODS = [ 'superpay', 'cash', @@ -17,13 +72,11 @@ export const PAYMENT_METHODS = [ 'other', ] as const; -export type PaymentMethod = typeof PAYMENT_METHODS[number]; - export function isValidPaymentMethod(input: unknown): input is PaymentMethod { - return PAYMENT_METHODS.includes(input as PaymentMethod); + return ALL_PAYMENT_METHODS_SET.has(input as PaymentMethod); } -/** @deprecated – use `PAYMENT_METHODS` */ +/** @deprecated – use `ALL_PAYMENT_METHODS` */ export function listPaymentMethods(): readonly PaymentMethod[] { return PAYMENT_METHODS; } diff --git a/src/__tests__/index.spec.ts b/src/__tests__/index.spec.ts index d2ace62..ee48d18 100644 --- a/src/__tests__/index.spec.ts +++ b/src/__tests__/index.spec.ts @@ -3,6 +3,26 @@ import * as api from '../index'; it('exports public api', () => { expect(api).toMatchInlineSnapshot(` Object { + "ACH_PAYMENT_METHODS": Array [ + "ach", + "direct_deposit", + ], + "ALL_PAYMENT_METHODS": Array [ + "superpay", + "cash", + "check", + "cashiers_check", + "money_order", + "comchek", + "ach", + "direct_deposit", + "credit_card", + "venmo", + "cashapp", + "uship", + "zelle", + "other", + ], "ALL_PAYMENT_TERMS": Array [ "other", "superpay", @@ -26,12 +46,21 @@ it('exports public api', () => { "on_delivery", "on_pickup", ], + "CASH_PAYMENT_METHODS": Array [ + "cash", + ], "CASH_TERMS": Array [ "cash_on_pickup", "cash_on_delivery", "2_days", "5_days", ], + "CHECK_PAYMENT_METHODS": Array [ + "check", + "cashiers_check", + "money_order", + "comchek", + ], "CHECK_TERMS": Array [ "check_on_delivery", "check_on_pickup", @@ -45,6 +74,9 @@ it('exports public api', () => { "45_days", "60_days", ], + "CREDIT_CARD_PAYMENT_METHODS": Array [ + "credit_card", + ], "CUSTOMER_TYPES": Array [ "BUSINESS", "DEALER", @@ -60,6 +92,12 @@ it('exports public api', () => { "not_earlier_than", "not_later_than", ], + "ELECTRONIC_PAYMENT_METHODS": Array [ + "venmo", + "cashapp", + "uship", + "zelle", + ], "ELECTRONIC_PAYMENT_TERMS": Array [ "on_delivery", "on_pickup", @@ -99,6 +137,9 @@ it('exports public api', () => { "60_days", "other", ], + "OTHER_PAYMENT_METHODS": Array [ + "other", + ], "OTHER_PAYMENT_TERMS": Array [ "other", "superpay", @@ -153,6 +194,9 @@ it('exports public api', () => { "45_days", "60_days", ], + "SUPERPAY_PAYMENT_METHODS": Array [ + "superpay", + ], "SUPERPAY_TERMS": Array [ "1_3_days", "5_days",