refactor(contributions): tighten requiresPayment contract; use findLast
This commit is contained in:
parent
62c606b30a
commit
03eee45cbd
2 changed files with 6 additions and 5 deletions
|
|
@ -8,7 +8,7 @@ export const CONTRIBUTION_PRESETS = [
|
|||
{ amount: 50, label: "I want to sponsor multiple members" },
|
||||
]
|
||||
|
||||
export const requiresPayment = (amount) => Number(amount) > 0
|
||||
export const requiresPayment = (amount) => amount > 0
|
||||
|
||||
export const isValidContributionAmount = (amount) =>
|
||||
Number.isInteger(amount) && amount >= 0
|
||||
|
|
@ -17,6 +17,6 @@ export const getGuidanceLabel = (amount) => {
|
|||
if (amount === null || amount === undefined) return null
|
||||
const n = Number(amount)
|
||||
if (!Number.isFinite(n) || n < 0) return null
|
||||
const match = [...CONTRIBUTION_PRESETS].reverse().find(p => p.amount <= n)
|
||||
const match = CONTRIBUTION_PRESETS.findLast(p => p.amount <= n)
|
||||
return match?.label ?? null
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,9 +26,10 @@ describe('requiresPayment', () => {
|
|||
expect(requiresPayment(1)).toBe(true)
|
||||
expect(requiresPayment(15)).toBe(true)
|
||||
})
|
||||
it('coerces string numbers', () => {
|
||||
expect(requiresPayment('15')).toBe(true)
|
||||
expect(requiresPayment('0')).toBe(false)
|
||||
it('returns false for null, undefined, NaN', () => {
|
||||
expect(requiresPayment(null)).toBe(false)
|
||||
expect(requiresPayment(undefined)).toBe(false)
|
||||
expect(requiresPayment(NaN)).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue