fix(consignment): 撤销寄售履约按选择回库,不再因加好友强制作废扣押金

买家退款时应能把现货退回仓库继续匹配;卖家押金只在客服显式选择扣除时才没收。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yml2213
2026-10-05 14:28:38 +08:00
co-authored by Cursor
parent 64110aa214
commit dbdafd3dc4
6 changed files with 45 additions and 75 deletions
@@ -21,49 +21,22 @@ test('押金处置选项归一:非法值一律退回按规则自动', () => {
assert.equal(normalizeConsignmentDepositHandling(null), 'auto')
})
test('打手履约押金:自动规则跟随"是否已确认加好友"', () => {
// 已确认加好友 → 自动没收
assert.equal(resolveWorkerDepositMode('auto', true), 'forfeit')
// 没确认加好友 → 自动全额退还
assert.equal(resolveWorkerDepositMode('auto', false), 'release')
assert.equal(resolveWorkerDepositMode(undefined, false), 'release')
test('打手履约押金:自动与退还都全额退还,只有显式扣除才没收', () => {
assert.equal(resolveWorkerDepositMode('auto'), 'release')
assert.equal(resolveWorkerDepositMode(undefined), 'release')
assert.equal(resolveWorkerDepositMode('refund'), 'release')
assert.equal(resolveWorkerDepositMode('forfeit'), 'forfeit')
})
test('打手履约押金:运营显式选择可以推翻自动规则', () => {
// 已确认加好友仍然选择退还
assert.equal(resolveWorkerDepositMode('refund', true), 'release')
// 没确认加好友也选择扣除
assert.equal(resolveWorkerDepositMode('forfeit', false), 'forfeit')
test('卖家发布押金:自动只看现货去向,加过好友也不再没收', () => {
assert.equal(resolveConsignmentDepositAction('auto', { archive: true }), 'release')
assert.equal(resolveConsignmentDepositAction('auto', { archive: false }), 'keep_frozen')
})
test('卖家发布押金:自动规则 = 已确认加好友没收 / 作废退还 / 回库保持冻结', () => {
assert.equal(
resolveConsignmentDepositAction('auto', { autoForfeit: true, archive: true }),
'forfeit',
)
assert.equal(
resolveConsignmentDepositAction('auto', { autoForfeit: true, archive: false }),
'forfeit',
)
assert.equal(
resolveConsignmentDepositAction('auto', { autoForfeit: false, archive: true }),
'release',
)
assert.equal(
resolveConsignmentDepositAction('auto', { autoForfeit: false, archive: false }),
'keep_frozen',
)
})
test('卖家发布押金:显式"保留冻结"不会去退也不会去打款流水', () => {
assert.equal(
resolveConsignmentDepositAction('keep_frozen', { autoForfeit: true, archive: true }),
'keep_frozen',
)
assert.equal(
resolveConsignmentDepositAction('forfeit', { autoForfeit: false, archive: true }),
'forfeit',
)
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('覆盖押金处置时视为需要留原因', () => {