@darkpos/pricing 1.0.44 → 1.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__TEST__/item/getItemsModifierDescription.test.js +75 -85
- package/__TEST__/mocks/scripts/calculate-partially-paid/index.js +2 -2
- package/__TEST__/mocks/scripts/calculate-unpaid/index.js +2 -2
- package/__TEST__/modifier/hasModifier.test.js +1626 -0
- package/__TEST__/order/addItem.test.js +2 -4
- package/__TEST__/order/manualSplit.test.js +104 -0
- package/__TEST__/order/order-payment-modifier.test.js +1117 -0
- package/__TEST__/order/order.test.js +50 -104
- package/__TEST__/order/pickEndDate.test.js +7 -153
- package/__TEST__/order/validateConditionsCalculate.test.js +42 -43
- package/lib/item/calculate.js +67 -9
- package/lib/item/getAmounts.js +14 -0
- package/lib/item/getBalance.js +0 -1
- package/lib/item/getInvalidRequiredModifiers.js +24 -0
- package/lib/item/getItemModifiersDescription.js +2 -1
- package/lib/item/getItemsBalance.js +9 -0
- package/lib/item/getItemsTotals.js +27 -0
- package/lib/item/getPipeModifiers.js +10 -0
- package/lib/item/getTotal.js +3 -1
- package/lib/item/hasModifier.js +21 -9
- package/lib/item/hasModifiers.js +3 -4
- package/lib/item/hasPaymentMethodType.js +17 -0
- package/lib/item/hasPaymentModifierWithPaymentId.js +9 -0
- package/lib/item/index.js +19 -10
- package/lib/item/removePaymentModifiersByPaymentId.js +13 -0
- package/lib/modifier/areConditionsMet.js +3 -13
- package/lib/modifier/calculatePaymentDiscountModifier.js +31 -0
- package/lib/modifier/calculatePaymentFeeModifier.js +27 -0
- package/lib/modifier/calculatePaymentModifier.js +67 -0
- package/lib/modifier/createDiscountModifier.js +2 -1
- package/lib/modifier/createFeeModifier.js +2 -1
- package/lib/modifier/duplicate.js +1 -1
- package/lib/modifier/getChildren.js +8 -0
- package/lib/modifier/getComputedAmount.js +9 -0
- package/lib/modifier/getGroupRelatedModifiers.js +5 -1
- package/lib/modifier/getItemModifiers.js +1 -3
- package/lib/modifier/hasPaymentMethodType.js +14 -0
- package/lib/modifier/index.js +23 -4
- package/lib/modifier/isCalculatedPaymentModifier.js +4 -0
- package/lib/modifier/isChild.js +6 -0
- package/lib/modifier/isDiscount.js +6 -2
- package/lib/modifier/isFee.js +5 -2
- package/lib/modifier/isPaymentMethodModifier.js +4 -1
- package/lib/modifier/isPaymentTypeModifier.js +4 -1
- package/lib/modifier/isPercentage.js +10 -0
- package/lib/modifier/isRelatedModifier.js +13 -0
- package/lib/modifier/removeGroupData.js +20 -0
- package/lib/modifier/sort.js +28 -0
- package/lib/order/addItemModifier.js +8 -1
- package/lib/order/applyPayment.js +61 -0
- package/lib/order/calculate.js +34 -16
- package/lib/order/getBalance.js +0 -1
- package/lib/order/getOrdersBalance.js +8 -0
- package/lib/order/index.js +9 -8
- package/lib/order/manualSplit.js +34 -0
- package/lib/order/manualSplitByQuantity.js +50 -0
- package/lib/store/pickEndDate.js +2 -2
- package/package.json +7 -4
- package/lib/item/getBalanceToPay.js +0 -12
- package/lib/item/getTotals.js +0 -40
- package/lib/item/isSelected.js +0 -13
- package/lib/item/markModifiersAsLocked.js +0 -13
- package/lib/modifier/createPaymentModifier.js +0 -12
- package/lib/modifier/getLockedModifiers.js +0 -5
- package/lib/order/markModifiersAsLocked.js +0 -14
- package/lib/order/removeModifiersWithPaymentMethods.js +0 -28
- package/lib/order/removeModifiersWithPaymentTypes.js +0 -26
|
@@ -153,7 +153,7 @@ describe('addItem function', () => {
|
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
_id: '66cdf18a1e48455e128a4f64',
|
|
156
|
-
modifierId:
|
|
156
|
+
modifierId: null,
|
|
157
157
|
_parentId: null,
|
|
158
158
|
name: null,
|
|
159
159
|
sku: null,
|
|
@@ -190,9 +190,7 @@ describe('addItem function', () => {
|
|
|
190
190
|
// Assertions
|
|
191
191
|
expect(updatedOrder.items).toHaveLength(1); // Should have one item
|
|
192
192
|
expect(updatedOrder.items[0].modifiers).toHaveLength(2); // Item should have two modifiers
|
|
193
|
-
expect(updatedOrder.items[0].modifiers[0].modifierId).toBe(
|
|
194
|
-
'66cdf18a1e48455e128a4f63'
|
|
195
|
-
); // Check first modifier
|
|
193
|
+
expect(updatedOrder.items[0].modifiers[0].modifierId).toBe('mod1'); // Check first modifier
|
|
196
194
|
expect(updatedOrder.items[0].modifiers[1].modifierId).toBe(
|
|
197
195
|
'66cdf18a1e48455e128a4f64'
|
|
198
196
|
); // Check second modifier
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
const usePricing = require('../../index');
|
|
2
|
+
const mockStores = require('../mocks/stores');
|
|
3
|
+
|
|
4
|
+
const session = {
|
|
5
|
+
store: mockStores[0],
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const pricingService = usePricing(session);
|
|
9
|
+
|
|
10
|
+
describe('manualSplit', () => {
|
|
11
|
+
test('should split item by quantity between suborders', () => {
|
|
12
|
+
const currentOrder = { items: [{ _id: 'item1', quantity: 2 }] };
|
|
13
|
+
const subOrders = [
|
|
14
|
+
{ items: [{ _id: 'item1', quantity: 2 }] },
|
|
15
|
+
{ items: [] },
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
const result = pricingService.order.manualSplit(
|
|
19
|
+
{ orderIndex: 0, itemIndex: 0 },
|
|
20
|
+
1,
|
|
21
|
+
currentOrder,
|
|
22
|
+
subOrders,
|
|
23
|
+
'item1',
|
|
24
|
+
true
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
expect(result[0].items[0].quantity).toBe(1); // Decreases quantity in original order
|
|
28
|
+
expect(result[1].items[0].quantity).toBe(1); // Adds quantity to destination
|
|
29
|
+
});
|
|
30
|
+
test('should remove item if quantity becomes zero', () => {
|
|
31
|
+
const currentOrder = { items: [{ _id: 'item1', quantity: 1 }] };
|
|
32
|
+
const subOrders = [
|
|
33
|
+
{ items: [{ _id: 'item1', quantity: 1 }] },
|
|
34
|
+
{ items: [] },
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
const result = pricingService.order.manualSplit(
|
|
38
|
+
{ orderIndex: 0, itemIndex: 0 },
|
|
39
|
+
1,
|
|
40
|
+
currentOrder,
|
|
41
|
+
subOrders,
|
|
42
|
+
'item1',
|
|
43
|
+
true
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
expect(result[0].items.length).toBe(0); // Removes item from original order
|
|
47
|
+
expect(result[1].items[0].quantity).toBe(1); // Adds to destination
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('should call manualSplitByQuantity if splitQuantity is true', () => {
|
|
51
|
+
const currentOrder = { items: [{ _id: 'item1', quantity: 2 }] };
|
|
52
|
+
const subOrders = [
|
|
53
|
+
{ items: [{ _id: 'item1', quantity: 2 }] },
|
|
54
|
+
{ items: [] },
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
const result = pricingService.order.manualSplit(
|
|
58
|
+
{ orderIndex: 0, itemIndex: 0 },
|
|
59
|
+
1,
|
|
60
|
+
currentOrder,
|
|
61
|
+
subOrders,
|
|
62
|
+
'item1',
|
|
63
|
+
true
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
expect(result[0].items[0].quantity).toBe(1); // Split by quantity
|
|
67
|
+
expect(result[1].items[0].quantity).toBe(1);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test('should move item to destination subOrder if splitQuantity is false', () => {
|
|
71
|
+
const currentOrder = { items: [{ _id: 'item1', quantity: 2 }] };
|
|
72
|
+
const subOrders = [
|
|
73
|
+
{ items: [{ _id: 'item1', quantity: 2 }] },
|
|
74
|
+
{ items: [] },
|
|
75
|
+
];
|
|
76
|
+
|
|
77
|
+
const result = pricingService.order.manualSplit(
|
|
78
|
+
{ orderIndex: 0, itemIndex: 0 },
|
|
79
|
+
1,
|
|
80
|
+
currentOrder,
|
|
81
|
+
subOrders,
|
|
82
|
+
'item1',
|
|
83
|
+
false
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
expect(result[0].items.length).toBe(0); // Removes item from original suborder
|
|
87
|
+
expect(result[1].items[0]._id).toBe('item1'); // Moves item to destination
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
test('should return subOrders unchanged if indices are invalid', () => {
|
|
91
|
+
const subOrders = [{ items: [] }, { items: [] }];
|
|
92
|
+
|
|
93
|
+
const result = pricingService.order.manualSplit(
|
|
94
|
+
{ orderIndex: null, itemIndex: null },
|
|
95
|
+
1,
|
|
96
|
+
{},
|
|
97
|
+
subOrders,
|
|
98
|
+
'item1',
|
|
99
|
+
false
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
expect(result).toEqual(subOrders); // No change
|
|
103
|
+
});
|
|
104
|
+
});
|