@darkpos/pricing 1.0.4 → 1.0.7
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/.eslintrc +8 -10
- package/README.md +108 -4
- package/__TEST__/item.test.js +265 -34
- package/__TEST__/modifier/calculate.test.js +73 -0
- package/__TEST__/modifier/getAvailablePromotionsOrSubscriptions.test.js +81 -0
- package/__TEST__/modifier/getMatchTagsModifiers.test.js +109 -0
- package/__TEST__/modifier/getModifierIndex.test.js +40 -0
- package/__TEST__/modifier/getRecommendedModifiers.test.js +17 -0
- package/__TEST__/modifier/hasAllTags.test.js +25 -0
- package/__TEST__/modifier/hasAttribute.test.js +47 -0
- package/__TEST__/modifier/hasMatchTags.test.js +56 -0
- package/__TEST__/modifier/hasNoTags.test.js +21 -0
- package/__TEST__/modifier/mocks/toggleModifier_no1.json +13440 -0
- package/__TEST__/modifier/mocks/toggleModifier_no2.json +13438 -0
- package/__TEST__/modifier/mocks/toggleModifier_no3.json +13598 -0
- package/__TEST__/modifier/sort.test.js +41 -0
- package/__TEST__/order.test.js +147 -74
- package/index.js +1 -9
- package/lib/constants/Modifier/Attributes.js +9 -0
- package/lib/constants/Modifier/Compute.js +15 -0
- package/lib/constants/Modifier/Types.js +7 -0
- package/lib/constants/Modifier/index.js +9 -0
- package/lib/constants/Status.js +39 -0
- package/lib/constants/index.js +7 -0
- package/lib/index.js +38 -0
- package/lib/item/addIndirectModifier.js +55 -0
- package/lib/item/calculate.js +108 -0
- package/lib/item/create.js +35 -0
- package/lib/item/filterByDirectModifiers.js +13 -0
- package/lib/item/findOriginalItem.js +8 -0
- package/lib/item/getBalanceToPay.js +12 -0
- package/lib/item/getDepartmentModifiers.js +5 -0
- package/lib/item/getDiscountModifiers.js +7 -0
- package/lib/item/getItemModifiers.js +16 -0
- package/lib/item/getItemModifiersDescription.js +22 -0
- package/lib/item/getItemPrice.js +57 -0
- package/lib/item/getItemsTotalPaid.js +9 -0
- package/lib/item/getItemsTotalPieces.js +7 -0
- package/lib/item/getNotIncludedModifiers.js +11 -0
- package/lib/item/getParentItem.js +5 -0
- package/lib/item/getPendingIndex.js +5 -0
- package/lib/item/getTotal.js +8 -0
- package/lib/item/getTotalPieces.js +7 -0
- package/lib/item/getTotals.js +25 -0
- package/lib/item/hasCreateSubscription.js +7 -0
- package/lib/item/hasModifier.js +15 -0
- package/lib/item/hasModifierWithValue.js +11 -0
- package/lib/item/hasModifiers.js +9 -0
- package/lib/item/hasSubscription.js +5 -0
- package/lib/item/index.js +80 -4
- package/lib/item/isParentIncluded.js +4 -0
- package/lib/item/isRelatedItem.js +4 -0
- package/lib/item/isSelected.js +13 -0
- package/lib/item/openRecommendationDialog.js +4 -0
- package/lib/item/removeModifier.js +84 -0
- package/lib/item/removeModifierById.js +8 -0
- package/lib/item/removeModifiers.js +14 -0
- package/lib/modifier/addFile.js +19 -0
- package/lib/modifier/addImage.js +18 -0
- package/lib/modifier/calculate.js +43 -0
- package/lib/modifier/contains.js +5 -0
- package/lib/modifier/convertMenuModifiers.js +5 -0
- package/lib/modifier/create.js +44 -0
- package/lib/modifier/createAmountOverrideModifier.js +20 -0
- package/lib/modifier/createCreditModifier.js +32 -0
- package/lib/modifier/createDiscountModifier.js +25 -0
- package/lib/modifier/createGroupValuesModifier.js +29 -0
- package/lib/modifier/createIndirectModifier.js +42 -0
- package/lib/modifier/createSubscriptionModifier.js +19 -0
- package/lib/modifier/displayAsCard.js +9 -0
- package/lib/modifier/displayAsChips.js +9 -0
- package/lib/modifier/displayAsList.js +9 -0
- package/lib/modifier/duplicate.js +12 -0
- package/lib/modifier/enableAutoPopup.js +9 -0
- package/lib/modifier/filterByRequiredModifiers.js +4 -0
- package/lib/modifier/findById.js +7 -0
- package/lib/modifier/findByPaymentMethod.js +10 -0
- package/lib/modifier/findByPaymentType.js +10 -0
- package/lib/modifier/getAvailablePromotions.js +5 -0
- package/lib/modifier/getAvailablePromotionsOrSubscriptions.js +15 -0
- package/lib/modifier/getAvailableSubscriptions.js +5 -0
- package/lib/modifier/getByAttribute.js +6 -0
- package/lib/modifier/getCreditModifier.js +6 -0
- package/lib/modifier/getDefaultModifiers.js +4 -0
- package/lib/modifier/getDepartmentMaxItems.js +10 -0
- package/lib/modifier/getDepartmentModifiers.js +11 -0
- package/lib/modifier/getDescription.js +6 -0
- package/lib/modifier/getDescriptions.js +9 -0
- package/lib/modifier/getDirectModifiers.js +5 -0
- package/lib/modifier/getDiscountModifiers.js +7 -0
- package/lib/modifier/getEntityModifiers.js +11 -0
- package/lib/modifier/getEntityPromotions.js +11 -0
- package/lib/modifier/getExtendedTags.js +14 -0
- package/lib/modifier/getFiles.js +5 -0
- package/lib/modifier/getGroupModifiers.js +9 -0
- package/lib/modifier/getGroupOfItemsModifiers.js +4 -0
- package/lib/modifier/getGroupRelatedModifiers.js +26 -0
- package/lib/modifier/getImages.js +5 -0
- package/lib/modifier/getInheritedModifiers.js +30 -0
- package/lib/modifier/getItemModifiers.js +39 -0
- package/lib/modifier/getLaundryModifiers.js +9 -0
- package/lib/modifier/getMatchTagsModifiers.js +9 -0
- package/lib/modifier/getModifierIndex.js +14 -0
- package/lib/modifier/getPreferences.js +24 -0
- package/lib/modifier/getPromotionModifiers.js +5 -0
- package/lib/modifier/getPromptMessage.js +6 -0
- package/lib/modifier/getProperty.js +11 -0
- package/lib/modifier/getRecommendedModifiers.js +7 -0
- package/lib/modifier/getRelatedModifiers.js +10 -0
- package/lib/modifier/getRequiredModifiers.js +4 -0
- package/lib/modifier/getSelectedValues.js +7 -0
- package/lib/modifier/getService.js +5 -0
- package/lib/modifier/getSplittedModifiers.js +30 -0
- package/lib/modifier/getStarchModifier.js +9 -0
- package/lib/modifier/getSubscriptionItem.js +12 -0
- package/lib/modifier/getSubscriptionModifiers.js +5 -0
- package/lib/modifier/getSuggestion.js +9 -0
- package/lib/modifier/getUnhiddenModifiers.js +9 -0
- package/lib/modifier/getUsingCount.js +11 -0
- package/lib/modifier/hasAddModifiers.js +5 -0
- package/lib/modifier/hasAllTag.js +12 -0
- package/lib/modifier/hasAttribute.js +8 -0
- package/lib/modifier/hasAttributes.js +19 -0
- package/lib/modifier/hasCreateSubscription.js +10 -0
- package/lib/modifier/hasDisplayPrompt.js +9 -0
- package/lib/modifier/hasMatchTags.js +27 -0
- package/lib/modifier/hasModifier.js +12 -0
- package/lib/modifier/hasNoTags.js +9 -0
- package/lib/modifier/hasRelatedItems.js +8 -0
- package/lib/modifier/includePiecesInQuantity.js +10 -0
- package/lib/modifier/includesInGroup.js +9 -0
- package/lib/modifier/index.js +240 -6
- package/lib/modifier/isAmountOverride.js +7 -0
- package/lib/modifier/isAvailablePromotion.js +23 -0
- package/lib/modifier/isAvailableSubscription.js +28 -0
- package/lib/modifier/isCompact.js +12 -0
- package/lib/modifier/isCredit.js +6 -0
- package/lib/modifier/isCustomerTagsExtend.js +9 -0
- package/lib/modifier/isDefault.js +4 -0
- package/lib/modifier/isDepartment.js +6 -0
- package/lib/modifier/isDirect.js +6 -0
- package/lib/modifier/isDiscount.js +6 -0
- package/lib/modifier/isEditable.js +10 -0
- package/lib/modifier/isGratuity.js +6 -0
- package/lib/modifier/isGroupOfItems.js +12 -0
- package/lib/modifier/isGroupOfModifiers.js +12 -0
- package/lib/modifier/isGroupOfValues.js +13 -0
- package/lib/modifier/isHidden.js +4 -0
- package/lib/modifier/isIncluded.js +4 -0
- package/lib/modifier/isManual.js +9 -0
- package/lib/modifier/isMultiplier.js +11 -0
- package/lib/modifier/isOverride.js +6 -0
- package/lib/modifier/isPaymentMethods.js +8 -0
- package/lib/modifier/isPaymentTypes.js +8 -0
- package/lib/modifier/isPreferences.js +8 -0
- package/lib/modifier/isPriceOverride.js +7 -0
- package/lib/modifier/isPromotion.js +6 -0
- package/lib/modifier/isQuantityOverride.js +7 -0
- package/lib/modifier/isRemoveModifier.js +4 -0
- package/lib/modifier/isRequired.js +4 -0
- package/lib/modifier/isRequiredAndOverride.js +4 -0
- package/lib/modifier/isService.js +9 -0
- package/lib/modifier/isSingleValue.js +9 -0
- package/lib/modifier/isSubscription.js +6 -0
- package/lib/modifier/isTrackUsageSubscription.js +5 -0
- package/lib/modifier/isValueSelected.js +7 -0
- package/lib/modifier/purifyModifiers.js +15 -0
- package/lib/modifier/sort.js +35 -0
- package/lib/order/addCreditModifier.js +27 -0
- package/lib/order/addDiscountModifier.js +9 -0
- package/lib/order/addItem.js +292 -0
- package/lib/order/addItemModifier.js +214 -0
- package/lib/order/addModifier.js +9 -0
- package/lib/order/addModifierToAllItems.js +16 -0
- package/lib/order/addNote.js +25 -0
- package/lib/order/addTable.js +11 -0
- package/lib/order/calculate.js +105 -0
- package/lib/order/calculateDue.js +15 -0
- package/lib/order/calculateOrdersDue.js +26 -0
- package/lib/order/canSplit.js +4 -0
- package/lib/order/changeEndDate.js +15 -0
- package/lib/order/changeLocation.js +20 -0
- package/lib/order/changeStartDate.js +14 -0
- package/lib/order/combineSubOrders.js +14 -0
- package/lib/order/containsSerial.js +5 -0
- package/lib/order/create.js +67 -0
- package/lib/order/createParent.js +9 -0
- package/lib/order/duplicateItem.js +16 -0
- package/lib/order/findItemIndex.js +6 -0
- package/lib/order/getAppliedCredit.js +5 -0
- package/lib/order/getBalance.js +9 -0
- package/lib/order/getCustomer.js +4 -0
- package/lib/order/getCustomerStoreCredit.js +14 -0
- package/lib/order/getCustomerSubscriptions.js +8 -0
- package/lib/order/getCustomerSubscriptionsByItem.js +14 -0
- package/lib/order/getDepartmentModifiers.js +9 -0
- package/lib/order/getEndDate.js +4 -0
- package/lib/order/getItemByItemId.js +6 -0
- package/lib/order/getItemIndex.js +9 -0
- package/lib/order/getItemsToPay.js +17 -0
- package/lib/order/getMenuItemsByCustomer.js +19 -0
- package/lib/order/getNumberOfItems.js +10 -0
- package/lib/order/getOrdersPieces.js +10 -0
- package/lib/order/getPendingItemIndex.js +5 -0
- package/lib/order/getRelatedItems.js +11 -0
- package/lib/order/getSameItems.js +19 -0
- package/lib/order/getScheduleByCustomer.js +20 -0
- package/lib/order/getScreenCustomerNotes.js +12 -0
- package/lib/order/getSelectedItem.js +6 -0
- package/lib/order/getStartDate.js +4 -0
- package/lib/order/getTip.js +10 -0
- package/lib/order/getTotalPieces.js +17 -0
- package/lib/order/getTotals.js +28 -0
- package/lib/order/hasAggregate.js +20 -0
- package/lib/order/hasItem.js +7 -0
- package/lib/order/hasRemainingSubscription.js +67 -0
- package/lib/order/hold.js +12 -0
- package/lib/order/index.js +164 -4
- package/lib/order/isDetailed.js +4 -0
- package/lib/order/isHold.js +4 -0
- package/lib/order/isNew.js +4 -0
- package/lib/order/isOpen.js +4 -0
- package/lib/order/isParent.js +7 -0
- package/lib/order/merge.js +96 -0
- package/lib/order/open.js +11 -0
- package/lib/order/pickEndDate.js +70 -0
- package/lib/order/removeApplyModifier.js +24 -0
- package/lib/order/removeDiscountModifier.js +16 -0
- package/lib/order/removeItem.js +55 -0
- package/lib/order/removeItemByIndex.js +5 -0
- package/lib/order/removeItemModifier.js +69 -0
- package/lib/order/removeModifier.js +21 -0
- package/lib/order/removeModifierByAttribute.js +23 -0
- package/lib/order/removeModifiersWithPaymentMethods.js +29 -0
- package/lib/order/removeModifiersWithPaymentTypes.js +27 -0
- package/lib/order/setCustomer.js +50 -0
- package/lib/order/splitByDepartments.js +151 -0
- package/lib/order/toggleModifier.js +9 -0
- package/lib/order/updateItem.js +8 -0
- package/lib/order/updateItemQuantity.js +35 -0
- package/lib/order/void.js +11 -0
- package/package.json +17 -15
- package/__TEST__/modifier.test.js +0 -126
- package/lib/item/actions.js +0 -140
- package/lib/modifier/actions.js +0 -172
- package/lib/modifier/constants.js +0 -46
- package/lib/order/actions.js +0 -47
- package/lib/utils/defaultPrices.js +0 -10
- package/lib/utils/helpers.js +0 -26
- package/lib/utils/index.js +0 -9
- package/lib/utils/math.js +0 -71
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
const usePricing = require('../../index');
|
|
2
|
+
|
|
3
|
+
const pricingService = usePricing();
|
|
4
|
+
|
|
5
|
+
describe('GetMatchTagsModifiers Function', () => {
|
|
6
|
+
test('usecases', () => {
|
|
7
|
+
expect(
|
|
8
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers: [] })
|
|
9
|
+
).toHaveLength(0);
|
|
10
|
+
const customer = {};
|
|
11
|
+
let modifiers = [];
|
|
12
|
+
expect(
|
|
13
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
14
|
+
).toHaveLength(0);
|
|
15
|
+
customer.tags = [];
|
|
16
|
+
modifiers = [{ tags: [] }];
|
|
17
|
+
expect(
|
|
18
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
19
|
+
).toHaveLength(1);
|
|
20
|
+
customer.tags = ['all'];
|
|
21
|
+
expect(
|
|
22
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
23
|
+
).toHaveLength(1);
|
|
24
|
+
modifiers = [{ tags: ['test'] }];
|
|
25
|
+
expect(
|
|
26
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
27
|
+
).toHaveLength(0);
|
|
28
|
+
modifiers = [{ tags: ['all'] }, { tags: ['test'] }];
|
|
29
|
+
expect(
|
|
30
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
31
|
+
).toHaveLength(1);
|
|
32
|
+
modifiers = [{ tags: ['all'] }, { tags: ['test'] }, { tags: [] }];
|
|
33
|
+
expect(
|
|
34
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
35
|
+
).toHaveLength(2);
|
|
36
|
+
customer.tags = ['test'];
|
|
37
|
+
modifiers = [{ tags: [] }];
|
|
38
|
+
expect(
|
|
39
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
40
|
+
).toHaveLength(0);
|
|
41
|
+
modifiers = [{ tags: ['test'] }];
|
|
42
|
+
expect(
|
|
43
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
44
|
+
).toHaveLength(1);
|
|
45
|
+
modifiers = [{ tags: ['all'] }, { tags: ['test'] }];
|
|
46
|
+
expect(
|
|
47
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
48
|
+
).toHaveLength(1);
|
|
49
|
+
modifiers = [{ tags: ['all'] }, { tags: ['test'] }, { tags: [] }];
|
|
50
|
+
expect(
|
|
51
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
52
|
+
).toHaveLength(1);
|
|
53
|
+
modifiers = [
|
|
54
|
+
{ tags: ['all'] },
|
|
55
|
+
{ tags: ['test'] },
|
|
56
|
+
{ tags: [] },
|
|
57
|
+
{ tags: ['Test'] },
|
|
58
|
+
];
|
|
59
|
+
expect(
|
|
60
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
61
|
+
).toHaveLength(1);
|
|
62
|
+
modifiers = [
|
|
63
|
+
{ tags: ['all'] },
|
|
64
|
+
{ tags: ['test'] },
|
|
65
|
+
{ tags: [] },
|
|
66
|
+
{ tags: ['Test'] },
|
|
67
|
+
{ tags: ['test', 'Test'] },
|
|
68
|
+
];
|
|
69
|
+
expect(
|
|
70
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
71
|
+
).toHaveLength(2);
|
|
72
|
+
modifiers = [{ tags: ['all'] }];
|
|
73
|
+
expect(
|
|
74
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
75
|
+
).toHaveLength(0);
|
|
76
|
+
modifiers = [{ tags: ['all'] }, { tags: ['test'] }];
|
|
77
|
+
expect(
|
|
78
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
79
|
+
).toHaveLength(1);
|
|
80
|
+
modifiers = [
|
|
81
|
+
{ tags: ['all'] },
|
|
82
|
+
{ tags: ['test'] },
|
|
83
|
+
{ tags: ['test'], attributes: ['hidden'] },
|
|
84
|
+
{},
|
|
85
|
+
];
|
|
86
|
+
expect(
|
|
87
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
88
|
+
).toHaveLength(2);
|
|
89
|
+
customer.tags = ['all'];
|
|
90
|
+
expect(
|
|
91
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
92
|
+
).toHaveLength(2);
|
|
93
|
+
modifiers = [
|
|
94
|
+
{ tags: ['all'] },
|
|
95
|
+
{ tags: ['test'] },
|
|
96
|
+
{ tags: ['all'], attributes: ['hidden'] },
|
|
97
|
+
{ tags: ['all'], attributes: ['default'] },
|
|
98
|
+
{ tags: ['all'], attributes: ['required'] },
|
|
99
|
+
{},
|
|
100
|
+
];
|
|
101
|
+
expect(
|
|
102
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
103
|
+
).toHaveLength(5);
|
|
104
|
+
customer.tags = undefined;
|
|
105
|
+
expect(
|
|
106
|
+
pricingService.modifier.getMatchTagsModifiers({ modifiers, entity: customer })
|
|
107
|
+
).toHaveLength(5);
|
|
108
|
+
});
|
|
109
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const usePricing = require('../../index');
|
|
2
|
+
|
|
3
|
+
const pricingService = usePricing();
|
|
4
|
+
|
|
5
|
+
describe('GetModifierIndex Function', () => {
|
|
6
|
+
test('usecases', () => {
|
|
7
|
+
expect(
|
|
8
|
+
pricingService.modifier.getModifierIndex({
|
|
9
|
+
entity: undefined,
|
|
10
|
+
modifier: undefined,
|
|
11
|
+
})
|
|
12
|
+
).toBe(-1);
|
|
13
|
+
const order = { modifiers: [{ modifierId: '123' }] };
|
|
14
|
+
expect(
|
|
15
|
+
pricingService.modifier.getModifierIndex({ entity: order, modifier: undefined })
|
|
16
|
+
).toBe(-1);
|
|
17
|
+
const modifier = { _id: '123' };
|
|
18
|
+
expect(
|
|
19
|
+
pricingService.modifier.getModifierIndex({
|
|
20
|
+
entity: order,
|
|
21
|
+
modifier,
|
|
22
|
+
})
|
|
23
|
+
).toBe(0);
|
|
24
|
+
modifier._id = '234';
|
|
25
|
+
expect(
|
|
26
|
+
pricingService.modifier.getModifierIndex({
|
|
27
|
+
entity: order,
|
|
28
|
+
modifier,
|
|
29
|
+
})
|
|
30
|
+
).toBe(-1);
|
|
31
|
+
order.modifiers = [{ modifierId: '123' }, { modifierId: '234' }];
|
|
32
|
+
expect(pricingService.modifier.getModifierIndex({ entity: order, modifier })).toBe(
|
|
33
|
+
1
|
|
34
|
+
);
|
|
35
|
+
modifier._id = '123';
|
|
36
|
+
expect(pricingService.modifier.getModifierIndex({ entity: order, modifier })).toBe(
|
|
37
|
+
0
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const usePricing = require('../../index');
|
|
2
|
+
|
|
3
|
+
const pricingService = usePricing();
|
|
4
|
+
|
|
5
|
+
describe('GetRecommendedModifiers Function', () => {
|
|
6
|
+
test('usecases', () => {
|
|
7
|
+
const modifier = { modifier: { recommended: true } };
|
|
8
|
+
expect(pricingService.modifier.getRecommendedModifiers([modifier])).toHaveLength(1);
|
|
9
|
+
|
|
10
|
+
const modifier2 = {
|
|
11
|
+
modifier: { modifier: { _id: 1 } },
|
|
12
|
+
};
|
|
13
|
+
expect(pricingService.modifier.getRecommendedModifiers([modifier2])).toHaveLength(
|
|
14
|
+
0
|
|
15
|
+
);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const usePricing = require('../../index');
|
|
2
|
+
|
|
3
|
+
const pricingService = usePricing();
|
|
4
|
+
|
|
5
|
+
describe('HasAllTag Function', () => {
|
|
6
|
+
test('usecases', () => {
|
|
7
|
+
expect(pricingService.modifier.hasAllTag()).toBe(false);
|
|
8
|
+
const customer = {};
|
|
9
|
+
expect(pricingService.modifier.hasAllTag(customer)).toBe(false);
|
|
10
|
+
customer.tags = [];
|
|
11
|
+
expect(pricingService.modifier.hasAllTag(customer)).toBe(false);
|
|
12
|
+
customer.tags = ['default'];
|
|
13
|
+
expect(pricingService.modifier.hasAllTag(customer)).toBe(false);
|
|
14
|
+
customer.tags = ['all'];
|
|
15
|
+
expect(pricingService.modifier.hasAllTag(customer)).toBe(true);
|
|
16
|
+
customer.tags = ['All'];
|
|
17
|
+
expect(pricingService.modifier.hasAllTag(customer)).toBe(true);
|
|
18
|
+
customer.tags = ['All', 'default'];
|
|
19
|
+
expect(pricingService.modifier.hasAllTag(customer)).toBe(true);
|
|
20
|
+
customer.tags = ['all', 'test'];
|
|
21
|
+
expect(pricingService.modifier.hasAllTag(customer)).toBe(true);
|
|
22
|
+
customer.tags = ['test'];
|
|
23
|
+
expect(pricingService.modifier.hasAllTag(customer)).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const usePricing = require('../../index');
|
|
2
|
+
|
|
3
|
+
const pricingService = usePricing();
|
|
4
|
+
|
|
5
|
+
describe('Has Modifiers Function', () => {
|
|
6
|
+
test('usecases', () => {
|
|
7
|
+
expect(pricingService.modifier.hasAttribute()).toBe(false);
|
|
8
|
+
expect(pricingService.modifier.hasAttribute(undefined, 'test')).toBe(false);
|
|
9
|
+
expect(pricingService.modifier.hasAttribute({}, undefined)).toBe(false);
|
|
10
|
+
expect(pricingService.modifier.hasAttribute({ attributes: [] }, undefined)).toBe(
|
|
11
|
+
false
|
|
12
|
+
);
|
|
13
|
+
expect(
|
|
14
|
+
pricingService.modifier.hasAttribute({ attributes: [undefined] }, undefined)
|
|
15
|
+
).toBe(false);
|
|
16
|
+
expect(
|
|
17
|
+
pricingService.modifier.hasAttribute({ attributes: ['test'] }, undefined)
|
|
18
|
+
).toBe(false);
|
|
19
|
+
expect(
|
|
20
|
+
pricingService.modifier.hasAttribute({ attributes: ['undefined'] }, undefined)
|
|
21
|
+
).toBe(false);
|
|
22
|
+
expect(
|
|
23
|
+
pricingService.modifier.hasAttribute(
|
|
24
|
+
{ attributes: ['undefined', undefined, 'test'] },
|
|
25
|
+
undefined
|
|
26
|
+
)
|
|
27
|
+
).toBe(false);
|
|
28
|
+
expect(
|
|
29
|
+
pricingService.modifier.hasAttribute(
|
|
30
|
+
{ attributes: ['undefined', undefined, 'test'] },
|
|
31
|
+
'undefined'
|
|
32
|
+
)
|
|
33
|
+
).toBe(true);
|
|
34
|
+
expect(
|
|
35
|
+
pricingService.modifier.hasAttribute(
|
|
36
|
+
{ attributes: ['undefined', undefined, 'test'] },
|
|
37
|
+
'test'
|
|
38
|
+
)
|
|
39
|
+
).toBe(true);
|
|
40
|
+
expect(
|
|
41
|
+
pricingService.modifier.hasAttribute(
|
|
42
|
+
{ attributes: ['undefined', undefined, 'test', 'test', 'test'] },
|
|
43
|
+
'test'
|
|
44
|
+
)
|
|
45
|
+
).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const usePricing = require('../../index');
|
|
2
|
+
|
|
3
|
+
const pricingService = usePricing();
|
|
4
|
+
|
|
5
|
+
describe('Has Match Tags Function', () => {
|
|
6
|
+
test('usecases', () => {
|
|
7
|
+
expect(pricingService.modifier.hasMatchTags()).toBe(true);
|
|
8
|
+
const customer = {};
|
|
9
|
+
const modifier = {};
|
|
10
|
+
expect(pricingService.modifier.hasMatchTags(customer)).toBe(true);
|
|
11
|
+
expect(pricingService.modifier.hasMatchTags(undefined, modifier)).toBe(true);
|
|
12
|
+
customer.tags = [];
|
|
13
|
+
modifier.tags = [];
|
|
14
|
+
expect(pricingService.modifier.hasMatchTags(customer)).toBe(true);
|
|
15
|
+
expect(pricingService.modifier.hasMatchTags(undefined, modifier)).toBe(true);
|
|
16
|
+
customer.tags = ['all'];
|
|
17
|
+
modifier.tags = ['all'];
|
|
18
|
+
expect(pricingService.modifier.hasMatchTags(customer)).toBe(true);
|
|
19
|
+
expect(pricingService.modifier.hasMatchTags(undefined, modifier)).toBe(true);
|
|
20
|
+
customer.tags = ['All'];
|
|
21
|
+
modifier.tags = ['All'];
|
|
22
|
+
expect(pricingService.modifier.hasMatchTags(customer)).toBe(true);
|
|
23
|
+
expect(pricingService.modifier.hasMatchTags(undefined, modifier)).toBe(true);
|
|
24
|
+
customer.tags = ['test'];
|
|
25
|
+
modifier.tags = ['test'];
|
|
26
|
+
expect(pricingService.modifier.hasMatchTags(customer)).toBe(false);
|
|
27
|
+
expect(pricingService.modifier.hasMatchTags(undefined, modifier)).toBe(false);
|
|
28
|
+
customer.tags = ['test'];
|
|
29
|
+
modifier.tags = ['all'];
|
|
30
|
+
expect(pricingService.modifier.hasMatchTags(customer, modifier)).toBe(false);
|
|
31
|
+
customer.tags = ['all'];
|
|
32
|
+
modifier.tags = ['test'];
|
|
33
|
+
expect(pricingService.modifier.hasMatchTags(customer, modifier)).toBe(false);
|
|
34
|
+
customer.tags = ['all'];
|
|
35
|
+
modifier.tags = ['all'];
|
|
36
|
+
expect(pricingService.modifier.hasMatchTags(customer, modifier)).toBe(true);
|
|
37
|
+
customer.tags = ['test'];
|
|
38
|
+
modifier.tags = ['test2'];
|
|
39
|
+
expect(pricingService.modifier.hasMatchTags(customer, modifier)).toBe(false);
|
|
40
|
+
customer.tags = ['test'];
|
|
41
|
+
modifier.tags = ['test'];
|
|
42
|
+
expect(pricingService.modifier.hasMatchTags(customer, modifier)).toBe(true);
|
|
43
|
+
customer.tags = ['test11', 'test12', 'test13', 'test14'];
|
|
44
|
+
modifier.tags = ['test'];
|
|
45
|
+
expect(pricingService.modifier.hasMatchTags(customer, modifier)).toBe(false);
|
|
46
|
+
customer.tags = ['test11', 'test12', 'test13', 'test14'];
|
|
47
|
+
modifier.tags = ['test21', 'test22', 'test23', 'test24'];
|
|
48
|
+
expect(pricingService.modifier.hasMatchTags(customer, modifier)).toBe(false);
|
|
49
|
+
customer.tags = ['test11', 'test12', 'test13', 'test14', 'match'];
|
|
50
|
+
modifier.tags = ['test21', 'test22', 'test23', 'test24', 'match'];
|
|
51
|
+
expect(pricingService.modifier.hasMatchTags(customer, modifier)).toBe(true);
|
|
52
|
+
customer.tags = ['test11', 'test12', 'test13', 'test14', 'Match'];
|
|
53
|
+
modifier.tags = ['test21', 'test22', 'test23', 'test24', 'match'];
|
|
54
|
+
expect(pricingService.modifier.hasMatchTags(customer, modifier)).toBe(false);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const usePricing = require('../../index');
|
|
2
|
+
|
|
3
|
+
const pricingService = usePricing();
|
|
4
|
+
|
|
5
|
+
describe('Has No Tags Function', () => {
|
|
6
|
+
test('usecases', () => {
|
|
7
|
+
expect(pricingService.modifier.hasNoTags()).toBe(true);
|
|
8
|
+
const customer = {};
|
|
9
|
+
expect(pricingService.modifier.hasNoTags(customer)).toBe(true);
|
|
10
|
+
customer.tags = [];
|
|
11
|
+
expect(pricingService.modifier.hasNoTags(customer)).toBe(true);
|
|
12
|
+
customer.tags = ['test'];
|
|
13
|
+
expect(pricingService.modifier.hasNoTags(customer)).toBe(false);
|
|
14
|
+
customer.tags = ['default'];
|
|
15
|
+
expect(pricingService.modifier.hasNoTags(customer)).toBe(false);
|
|
16
|
+
customer.tags = ['all'];
|
|
17
|
+
expect(pricingService.modifier.hasNoTags(customer)).toBe(false);
|
|
18
|
+
customer.tags = ['All'];
|
|
19
|
+
expect(pricingService.modifier.hasNoTags(customer)).toBe(false);
|
|
20
|
+
});
|
|
21
|
+
});
|