pl-plan-product-balance.test.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import assert from 'node:assert/strict'
  2. import test from 'node:test'
  3. import { describeLoadDeliveryProductGap } from '../src/utils/pl-plan-stop-form'
  4. test('load and delivery product sets must name every product that exists on only one side', () => {
  5. const gap = describeLoadDeliveryProductGap(
  6. [
  7. { productId: 'a', productName: 'A' },
  8. { productId: 'd', productName: 'D' }
  9. ],
  10. [
  11. { products: [{ productId: 'a', productName: 'A' }] },
  12. {
  13. products: [
  14. { productId: 'b', productName: 'B' },
  15. { productId: 'c', productName: 'C' }
  16. ]
  17. }
  18. ]
  19. )
  20. assert.equal(
  21. gap,
  22. '装货段有产品 D,送货段没有;送货段有产品 B、C,装货段没有。两边产品必须一致,不能保存'
  23. )
  24. })
  25. test('same product in different packages is one product', () => {
  26. assert.equal(
  27. describeLoadDeliveryProductGap(
  28. [
  29. { productId: 'a', productName: '尿素', packageSpec: '桶' },
  30. { productId: 'a', productName: '尿素', packageSpec: '散装' }
  31. ],
  32. [{ products: [{ productId: 'a', productName: '尿素', packageSpec: '袋' }] }]
  33. ),
  34. ''
  35. )
  36. })
  37. test('empty product lists match', () => {
  38. assert.equal(describeLoadDeliveryProductGap([], [{ products: [] }]), '')
  39. })