Files
order_site/apps/backend/src/domain/consignment-deposit-policy.test.ts
T
yml2213andCursor dbdafd3dc4 fix(consignment): 撤销寄售履约按选择回库,不再因加好友强制作废扣押金
买家退款时应能把现货退回仓库继续匹配;卖家押金只在客服显式选择扣除时才没收。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 14:28:38 +08:00

48 lines
2.2 KiB
TypeScript

import assert from 'node:assert/strict'
import test from 'node:test'
import {
isDepositHandlingOverridden,
normalizeConsignmentDepositHandling,
normalizeWorkerDepositHandling,
resolveConsignmentDepositAction,
resolveWorkerDepositMode,
} from './consignment-deposit-policy.js'
test('押金处置选项归一:非法值一律退回按规则自动', () => {
assert.equal(normalizeWorkerDepositHandling('refund'), 'refund')
assert.equal(normalizeWorkerDepositHandling('forfeit'), 'forfeit')
assert.equal(normalizeWorkerDepositHandling('auto'), 'auto')
assert.equal(normalizeWorkerDepositHandling('随便写的'), 'auto')
assert.equal(normalizeWorkerDepositHandling(undefined), 'auto')
assert.equal(normalizeConsignmentDepositHandling('keep_frozen'), 'keep_frozen')
assert.equal(normalizeConsignmentDepositHandling('forfeit'), 'forfeit')
assert.equal(normalizeConsignmentDepositHandling(null), 'auto')
})
test('打手履约押金:自动与退还都全额退还,只有显式扣除才没收', () => {
assert.equal(resolveWorkerDepositMode('auto'), 'release')
assert.equal(resolveWorkerDepositMode(undefined), 'release')
assert.equal(resolveWorkerDepositMode('refund'), 'release')
assert.equal(resolveWorkerDepositMode('forfeit'), 'forfeit')
})
test('卖家发布押金:自动只看现货去向,加过好友也不再没收', () => {
assert.equal(resolveConsignmentDepositAction('auto', { archive: true }), 'release')
assert.equal(resolveConsignmentDepositAction('auto', { archive: false }), 'keep_frozen')
})
test('卖家发布押金:显式选择覆盖自动规则', () => {
assert.equal(resolveConsignmentDepositAction('keep_frozen', { archive: true }), 'keep_frozen')
assert.equal(resolveConsignmentDepositAction('forfeit', { archive: false }), 'forfeit')
assert.equal(resolveConsignmentDepositAction('forfeit', { archive: true }), 'forfeit')
})
test('覆盖押金处置时视为需要留原因', () => {
assert.equal(isDepositHandlingOverridden({}), false)
assert.equal(isDepositHandlingOverridden({ workerDeposit: 'auto' }), false)
assert.equal(isDepositHandlingOverridden({ workerDeposit: 'refund' }), true)
assert.equal(isDepositHandlingOverridden({ consignmentDeposit: 'keep_frozen' }), true)
})