feat(fulfillment): 同城运费与路由修复,配送单展示商品用户地址
同城 MANUAL/ZZXFX 按小飞侠价规计费,路由查询回退仓配凭证;HQ 配送单补商品、用户和收货地址。门店核销回跳与小程序核销码一并带上。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { DEFAULT_XFX_LOGISTICS_PRICING } from '@dukang/shared-types';
|
||||
import { calcDeliveryFreightAmount } from './delivery-freight.util';
|
||||
|
||||
describe('calcDeliveryFreightAmount', () => {
|
||||
it('瓶装按小飞侠默认计价:2瓶6元', () => {
|
||||
expect(
|
||||
calcDeliveryFreightAmount({
|
||||
quantity: 2,
|
||||
bottlesPerUnit: 1,
|
||||
deliveryType: 'LOCAL',
|
||||
provider: 'XFX',
|
||||
}),
|
||||
).toBe(6);
|
||||
});
|
||||
|
||||
it('箱装先换算瓶数:1箱6瓶=14元', () => {
|
||||
expect(
|
||||
calcDeliveryFreightAmount({
|
||||
quantity: 1,
|
||||
bottlesPerUnit: 6,
|
||||
deliveryType: 'LOCAL',
|
||||
provider: 'XFX',
|
||||
}),
|
||||
).toBe(14);
|
||||
});
|
||||
|
||||
it('现场提货不计运费', () => {
|
||||
expect(
|
||||
calcDeliveryFreightAmount({
|
||||
quantity: 2,
|
||||
bottlesPerUnit: 1,
|
||||
deliveryType: 'ON_SITE_PICKUP',
|
||||
provider: 'XFX',
|
||||
}),
|
||||
).toBeNull();
|
||||
});
|
||||
|
||||
it('无承运商计价时返回 null;有自定义规则则用之', () => {
|
||||
expect(
|
||||
calcDeliveryFreightAmount({
|
||||
quantity: 2,
|
||||
bottlesPerUnit: 1,
|
||||
deliveryType: 'CROSS_CITY',
|
||||
provider: 'LOGISTICS',
|
||||
}),
|
||||
).toBeNull();
|
||||
|
||||
expect(
|
||||
calcDeliveryFreightAmount({
|
||||
quantity: 2,
|
||||
bottlesPerUnit: 1,
|
||||
deliveryType: 'CROSS_CITY',
|
||||
provider: 'LOGISTICS',
|
||||
pricing: { ...DEFAULT_XFX_LOGISTICS_PRICING },
|
||||
}),
|
||||
).toBe(6);
|
||||
});
|
||||
|
||||
it('同城即使 provider=MANUAL 也按小飞侠默认计价', () => {
|
||||
expect(
|
||||
calcDeliveryFreightAmount({
|
||||
quantity: 2,
|
||||
bottlesPerUnit: 1,
|
||||
deliveryType: 'LOCAL',
|
||||
provider: 'MANUAL',
|
||||
}),
|
||||
).toBe(6);
|
||||
});
|
||||
|
||||
it('城市小飞侠编码 ZZXFX 使用默认计价', () => {
|
||||
expect(
|
||||
calcDeliveryFreightAmount({
|
||||
quantity: 4,
|
||||
bottlesPerUnit: 1,
|
||||
deliveryType: 'LOCAL',
|
||||
provider: 'MANUAL',
|
||||
providerCode: 'ZZXFX',
|
||||
}),
|
||||
).toBe(10);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user