| import { describe, it, expect } from 'vitest' | |
| import { formatMinor, isStepUpRequired } from './ledger' | |
| import { ApiRequestError } from './client' | |
| describe('D3 ledger client', () => { | |
| it('formats integer minor units as SAR major units', () => { | |
| expect(formatMinor(2550)).toBe('25.50 SAR') | |
| expect(formatMinor(1)).toBe('0.01 SAR') | |
| expect(formatMinor(100000)).toBe('1,000.00 SAR') | |
| }) | |
| it('detects the 422 step_up_required challenge', () => { | |
| const e = new ApiRequestError({ status: 422, message: 'step_up_required' }) | |
| expect(isStepUpRequired(e)).toBe(true) | |
| expect(isStepUpRequired(new ApiRequestError({ status: 422, message: 'insufficient_funds' }))).toBe(false) | |
| expect(isStepUpRequired(new Error('nope'))).toBe(false) | |
| }) | |
| }) | |