41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
|
|
import { describe, expect, it } from 'vitest'
|
||
|
|
import { filterPendingDeliveryGroupBuyOrders, groupBuyOrderDispatchLabel } from './groupBuyApi'
|
||
|
|
import type { GroupBuyOrder } from '../types'
|
||
|
|
|
||
|
|
describe('group buy dispatch helpers', () => {
|
||
|
|
it('keeps only group buy orders waiting for delivery', () => {
|
||
|
|
const orders = [
|
||
|
|
groupBuyOrder({ id: 1, status: 'PENDING_DELIVERY' }),
|
||
|
|
groupBuyOrder({ id: 2, status: 'DELIVERING' }),
|
||
|
|
groupBuyOrder({ id: 3, status: 'PENDING_PICKUP' })
|
||
|
|
]
|
||
|
|
|
||
|
|
expect(filterPendingDeliveryGroupBuyOrders(orders).map((item) => item.id)).toEqual([1])
|
||
|
|
})
|
||
|
|
|
||
|
|
it('builds a readable dispatch label', () => {
|
||
|
|
expect(groupBuyOrderDispatchLabel(groupBuyOrder({
|
||
|
|
orderNo: 'GB00000001',
|
||
|
|
groupBuyTitle: 'Today eggs',
|
||
|
|
quantity: 2,
|
||
|
|
amountCent: 5980
|
||
|
|
}))).toBe('GB00000001 Today eggs x2 ¥59.80')
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
function groupBuyOrder(overrides: Partial<GroupBuyOrder>): GroupBuyOrder {
|
||
|
|
return {
|
||
|
|
id: 1,
|
||
|
|
orderNo: 'GB00000001',
|
||
|
|
groupBuyId: 1,
|
||
|
|
groupBuyTitle: 'Today eggs',
|
||
|
|
quantity: 1,
|
||
|
|
priceCent: 2990,
|
||
|
|
amountCent: 2990,
|
||
|
|
deliveryMethod: 'IMMEDIATE',
|
||
|
|
status: 'PENDING_DELIVERY',
|
||
|
|
offlinePayStatus: 'UNPAID',
|
||
|
|
...overrides
|
||
|
|
}
|
||
|
|
}
|