test-protocol-payment-presets.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import assert from 'node:assert/strict'
  2. import {
  3. resolvePaymentPreset,
  4. getActiveSampleCount,
  5. isInstallmentPayMode,
  6. isPayModeValidForSampleCount
  7. } from '../src/utils/protocol-payment-presets'
  8. const fq1 = resolvePaymentPreset(1, 'fq')!
  9. assert.equal(fq1.contractAmount, 25880)
  10. assert.deepEqual(fq1.installmentAmounts, [6480, 3880, 3880, 3880, 3880, 3880])
  11. assert.equal(
  12. fq1.installmentAmounts!.reduce((s, v) => s + v, 0),
  13. fq1.contractAmount
  14. )
  15. const djfq2 = resolvePaymentPreset(2, 'djfq')!
  16. assert.equal(djfq2.contractAmount, 41000)
  17. assert.equal(djfq2.installmentCount, 4)
  18. assert.deepEqual(djfq2.installmentAmounts, [29360, 3880, 3880, 3880])
  19. assert.equal(
  20. djfq2.installmentAmounts!.reduce((s, v) => s + v, 0),
  21. djfq2.contractAmount
  22. )
  23. assert.equal(getActiveSampleCount([{ sampleStatus: 'ycj' }]), 1)
  24. assert.equal(getActiveSampleCount([{ sampleStatus: 'ycj' }, { sampleStatus: 'yzf' }]), 1)
  25. assert.equal(
  26. getActiveSampleCount([{ sampleStatus: 'ycj' }, { sampleStatus: 'ycj' }]),
  27. 2
  28. )
  29. assert.equal(isInstallmentPayMode('djfq'), true)
  30. assert.equal(isInstallmentPayMode('dj'), false)
  31. assert.equal(isPayModeValidForSampleCount('djfq', 1), false)
  32. assert.equal(isPayModeValidForSampleCount('djfq', 2), true)
  33. console.log('protocol-payment-presets: OK')