39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import assert from 'node:assert/strict'
|
|
import {
|
|
resolvePaymentPreset,
|
|
getActiveSampleCount,
|
|
isInstallmentPayMode,
|
|
isPayModeValidForSampleCount
|
|
} from '../src/utils/protocol-payment-presets'
|
|
|
|
const fq1 = resolvePaymentPreset(1, 'fq')!
|
|
assert.equal(fq1.contractAmount, 25880)
|
|
assert.deepEqual(fq1.installmentAmounts, [6480, 3880, 3880, 3880, 3880, 3880])
|
|
assert.equal(
|
|
fq1.installmentAmounts!.reduce((s, v) => s + v, 0),
|
|
fq1.contractAmount
|
|
)
|
|
|
|
const djfq2 = resolvePaymentPreset(2, 'djfq')!
|
|
assert.equal(djfq2.contractAmount, 41000)
|
|
assert.equal(djfq2.installmentCount, 4)
|
|
assert.deepEqual(djfq2.installmentAmounts, [29360, 3880, 3880, 3880])
|
|
assert.equal(
|
|
djfq2.installmentAmounts!.reduce((s, v) => s + v, 0),
|
|
djfq2.contractAmount
|
|
)
|
|
|
|
assert.equal(getActiveSampleCount([{ sampleStatus: 'ycj' }]), 1)
|
|
assert.equal(getActiveSampleCount([{ sampleStatus: 'ycj' }, { sampleStatus: 'yzf' }]), 1)
|
|
assert.equal(
|
|
getActiveSampleCount([{ sampleStatus: 'ycj' }, { sampleStatus: 'ycj' }]),
|
|
2
|
|
)
|
|
|
|
assert.equal(isInstallmentPayMode('djfq'), true)
|
|
assert.equal(isInstallmentPayMode('dj'), false)
|
|
assert.equal(isPayModeValidForSampleCount('djfq', 1), false)
|
|
assert.equal(isPayModeValidForSampleCount('djfq', 2), true)
|
|
|
|
console.log('protocol-payment-presets: OK')
|