买家退款时应能把现货退回仓库继续匹配;卖家押金只在客服显式选择扣除时才没收。 Co-authored-by: Cursor <cursoragent@cursor.com>
48 lines
2.2 KiB
TypeScript
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)
|
|
})
|