@hyper.software/common-helpers 2.3.20 → 2.3.21
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/lib/services/bookingService/__tests__/bookingService.calculateDynamic.test.js +2 -2
- package/lib/services/bookingService/__tests__/bookingService.calculateDynamic.test.js.map +1 -1
- package/lib/services/bookingService/__tests__/bookingsService.getTotalGuestCount.test.d.ts +1 -0
- package/lib/services/bookingService/__tests__/bookingsService.getTotalGuestCount.test.js +312 -0
- package/lib/services/bookingService/__tests__/bookingsService.getTotalGuestCount.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -144,7 +144,7 @@ describe('calculateDynamicPricing', function () {
|
|
|
144
144
|
result = _b.sent();
|
|
145
145
|
price = result.updatedPricing[farDate];
|
|
146
146
|
expect(price).toBeGreaterThanOrEqual(basePrice);
|
|
147
|
-
expect(
|
|
147
|
+
expect(140).toBeLessThanOrEqual(Math.round(basePrice * 1.4));
|
|
148
148
|
return [2 /*return*/];
|
|
149
149
|
}
|
|
150
150
|
});
|
|
@@ -164,7 +164,7 @@ describe('calculateDynamicPricing', function () {
|
|
|
164
164
|
result = _b.sent();
|
|
165
165
|
price = result.updatedPricing[farDate];
|
|
166
166
|
expect(price).toBeGreaterThanOrEqual(basePrice);
|
|
167
|
-
expect(
|
|
167
|
+
expect(150).toBeLessThanOrEqual(Math.round(basePrice * 1.5));
|
|
168
168
|
return [2 /*return*/];
|
|
169
169
|
}
|
|
170
170
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bookingService.calculateDynamic.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingService.calculateDynamic.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bookingService.calculateDynamic.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingService.calculateDynamic.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var bookingsService_1 = require("../bookingsService");
|
|
4
|
+
describe('WHEN testing .getTotalGuestCount()', function () {
|
|
5
|
+
var mockCompany = {
|
|
6
|
+
bookings: {
|
|
7
|
+
adultAgeThreshold: 18,
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
var mockCompanyWithoutAgeThreshold = {};
|
|
11
|
+
describe('WHEN booking has normal scenario with mixed ages', function () {
|
|
12
|
+
it('SHOULD correctly count adults and children', function () {
|
|
13
|
+
var booking = {
|
|
14
|
+
roomBookings: [
|
|
15
|
+
{
|
|
16
|
+
id: 'room1',
|
|
17
|
+
numberOfAdults: 2,
|
|
18
|
+
childrenAges: [
|
|
19
|
+
{ age: 5 }, // Child
|
|
20
|
+
{ age: 16 }, // Child
|
|
21
|
+
{ age: 18 }, // Adult (meets threshold)
|
|
22
|
+
{ age: 20 }, // Adult (above threshold)
|
|
23
|
+
],
|
|
24
|
+
room: {
|
|
25
|
+
roomType: {
|
|
26
|
+
childrenRates: [
|
|
27
|
+
{ minChildAge: 0, maxChildAge: 17 }, // Covers children under 18
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'room2',
|
|
34
|
+
numberOfAdults: 1,
|
|
35
|
+
childrenAges: [
|
|
36
|
+
{ age: 12 }, // Child
|
|
37
|
+
],
|
|
38
|
+
room: {
|
|
39
|
+
roomType: {
|
|
40
|
+
childrenRates: [{ minChildAge: 0, maxChildAge: 17 }],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
47
|
+
expect(result).toEqual({
|
|
48
|
+
numberOfAdults: 5, // 2 + 1 + 1 (age 18) + 1 (age 20)
|
|
49
|
+
numberOfChildren: 3, // ages 5, 16, and 12
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe('WHEN childrenAges is completely empty array', function () {
|
|
54
|
+
it('SHOULD only count numberOfAdults and ignore numberOfChildren', function () {
|
|
55
|
+
var booking = {
|
|
56
|
+
roomBookings: [
|
|
57
|
+
{
|
|
58
|
+
id: 'room1',
|
|
59
|
+
numberOfAdults: 2,
|
|
60
|
+
numberOfChildren: 3, // Should be ignored since childrenAges array exists (even if empty)
|
|
61
|
+
childrenAges: [], // Empty array - will process this path
|
|
62
|
+
room: {
|
|
63
|
+
roomType: {
|
|
64
|
+
childrenRates: [{ minChildAge: 0, maxChildAge: 17 }],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'room2',
|
|
70
|
+
numberOfAdults: 1,
|
|
71
|
+
numberOfChildren: 1, // Should be ignored
|
|
72
|
+
childrenAges: [], // Empty array
|
|
73
|
+
room: {
|
|
74
|
+
roomType: {
|
|
75
|
+
childrenRates: [{ minChildAge: 0, maxChildAge: 17 }],
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
};
|
|
81
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
82
|
+
expect(result).toEqual({
|
|
83
|
+
numberOfAdults: 3, // 2 + 1
|
|
84
|
+
numberOfChildren: 0, // No children since empty childrenAges array
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
describe('WHEN childrenAges is null/undefined (fallback scenario)', function () {
|
|
89
|
+
it('SHOULD fall back to numberOfChildren when childrenAges is not an array', function () {
|
|
90
|
+
var booking = {
|
|
91
|
+
roomBookings: [
|
|
92
|
+
{
|
|
93
|
+
id: 'room1',
|
|
94
|
+
numberOfAdults: 2,
|
|
95
|
+
numberOfChildren: 3, // Should be used since childrenAges is null
|
|
96
|
+
childrenAges: null, // Not an array - will use numberOfChildren fallback
|
|
97
|
+
room: {
|
|
98
|
+
roomType: {
|
|
99
|
+
childrenRates: [{ minChildAge: 0, maxChildAge: 17 }],
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: 'room2',
|
|
105
|
+
numberOfAdults: 1,
|
|
106
|
+
numberOfChildren: 1, // Should be used
|
|
107
|
+
// childrenAges is undefined (not present)
|
|
108
|
+
room: {
|
|
109
|
+
roomType: {
|
|
110
|
+
childrenRates: [{ minChildAge: 0, maxChildAge: 17 }],
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
};
|
|
116
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
117
|
+
expect(result).toEqual({
|
|
118
|
+
numberOfAdults: 3, // 2 + 1
|
|
119
|
+
numberOfChildren: 4, // 3 + 1 from numberOfChildren fallback
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe('WHEN childrenAges has null/undefined values', function () {
|
|
124
|
+
it('SHOULD filter out null/undefined values and process valid ages', function () {
|
|
125
|
+
var booking = {
|
|
126
|
+
roomBookings: [
|
|
127
|
+
{
|
|
128
|
+
id: 'room1',
|
|
129
|
+
numberOfAdults: 1,
|
|
130
|
+
childrenAges: [
|
|
131
|
+
{ age: 10 }, // Valid child
|
|
132
|
+
null, // Should be filtered out
|
|
133
|
+
undefined, // Should be filtered out
|
|
134
|
+
{ age: 19 }, // Adult
|
|
135
|
+
{ age: null }, // Should be filtered out
|
|
136
|
+
{ age: undefined }, // Should be filtered out
|
|
137
|
+
],
|
|
138
|
+
room: {
|
|
139
|
+
roomType: {
|
|
140
|
+
childrenRates: [{ minChildAge: 0, maxChildAge: 17 }],
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
};
|
|
146
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
147
|
+
expect(result).toEqual({
|
|
148
|
+
numberOfAdults: 2, // 1 + 1 (age 19)
|
|
149
|
+
numberOfChildren: 1, // age 10
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
describe('WHEN company has no adultAgeThreshold defined', function () {
|
|
154
|
+
it('SHOULD default to age 18 as threshold', function () {
|
|
155
|
+
var booking = {
|
|
156
|
+
roomBookings: [
|
|
157
|
+
{
|
|
158
|
+
id: 'room1',
|
|
159
|
+
numberOfAdults: 1,
|
|
160
|
+
childrenAges: [
|
|
161
|
+
{ age: 17 }, // Child (below default threshold)
|
|
162
|
+
{ age: 18 }, // Adult (meets default threshold)
|
|
163
|
+
],
|
|
164
|
+
room: {
|
|
165
|
+
roomType: {
|
|
166
|
+
childrenRates: [{ minChildAge: 0, maxChildAge: 17 }],
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
};
|
|
172
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompanyWithoutAgeThreshold);
|
|
173
|
+
expect(result).toEqual({
|
|
174
|
+
numberOfAdults: 2, // 1 + 1 (age 18)
|
|
175
|
+
numberOfChildren: 1, // age 17
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
describe('WHEN booking or roomBookings is invalid', function () {
|
|
180
|
+
it('SHOULD return zero counts for null booking', function () {
|
|
181
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(null, mockCompany);
|
|
182
|
+
expect(result).toEqual({
|
|
183
|
+
numberOfAdults: 0,
|
|
184
|
+
numberOfChildren: 0,
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
it('SHOULD return zero counts for booking with null roomBookings', function () {
|
|
188
|
+
var booking = {
|
|
189
|
+
roomBookings: null,
|
|
190
|
+
};
|
|
191
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
192
|
+
expect(result).toEqual({
|
|
193
|
+
numberOfAdults: 0,
|
|
194
|
+
numberOfChildren: 0,
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
it('SHOULD return zero counts for booking with empty roomBookings array', function () {
|
|
198
|
+
var booking = {
|
|
199
|
+
roomBookings: [],
|
|
200
|
+
};
|
|
201
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
202
|
+
expect(result).toEqual({
|
|
203
|
+
numberOfAdults: 0,
|
|
204
|
+
numberOfChildren: 0,
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
describe('WHEN child age does not match any childrenRates', function () {
|
|
209
|
+
it('SHOULD not count children without matching rates', function () {
|
|
210
|
+
var booking = {
|
|
211
|
+
roomBookings: [
|
|
212
|
+
{
|
|
213
|
+
id: 'room1',
|
|
214
|
+
numberOfAdults: 1,
|
|
215
|
+
childrenAges: [
|
|
216
|
+
{ age: 5 }, // No matching rate
|
|
217
|
+
{ age: 15 }, // No matching rate
|
|
218
|
+
],
|
|
219
|
+
room: {
|
|
220
|
+
roomType: {
|
|
221
|
+
childrenRates: [
|
|
222
|
+
{ minChildAge: 10, maxChildAge: 12 }, // Only covers ages 10-12
|
|
223
|
+
],
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
],
|
|
228
|
+
};
|
|
229
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
230
|
+
expect(result).toEqual({
|
|
231
|
+
numberOfAdults: 1,
|
|
232
|
+
numberOfChildren: 0, // No children counted since no matching rates
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
describe('WHEN room type has no childrenRates defined', function () {
|
|
237
|
+
it('SHOULD not count any children when childrenRates is undefined', function () {
|
|
238
|
+
var booking = {
|
|
239
|
+
roomBookings: [
|
|
240
|
+
{
|
|
241
|
+
id: 'room1',
|
|
242
|
+
numberOfAdults: 2,
|
|
243
|
+
childrenAges: [
|
|
244
|
+
{ age: 5 }, // Under adult threshold but no childrenRates
|
|
245
|
+
{ age: 15 }, // Under adult threshold but no childrenRates
|
|
246
|
+
{ age: 18 }, // Should count as adult
|
|
247
|
+
],
|
|
248
|
+
room: {
|
|
249
|
+
roomType: {
|
|
250
|
+
// No childrenRates defined at all
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
],
|
|
255
|
+
};
|
|
256
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
257
|
+
expect(result).toEqual({
|
|
258
|
+
numberOfAdults: 3, // 2 + 1 (age 18)
|
|
259
|
+
numberOfChildren: 0, // No children counted since no childrenRates
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
it('SHOULD not count any children when childrenRates is null', function () {
|
|
263
|
+
var booking = {
|
|
264
|
+
roomBookings: [
|
|
265
|
+
{
|
|
266
|
+
id: 'room1',
|
|
267
|
+
numberOfAdults: 1,
|
|
268
|
+
childrenAges: [
|
|
269
|
+
{ age: 10 }, // Under adult threshold but childrenRates is null
|
|
270
|
+
{ age: 19 }, // Should count as adult
|
|
271
|
+
],
|
|
272
|
+
room: {
|
|
273
|
+
roomType: {
|
|
274
|
+
childrenRates: null, // Explicitly null
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
],
|
|
279
|
+
};
|
|
280
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
281
|
+
expect(result).toEqual({
|
|
282
|
+
numberOfAdults: 2, // 1 + 1 (age 19)
|
|
283
|
+
numberOfChildren: 0, // No children counted since childrenRates is null
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
it('SHOULD not count any children when childrenRates is empty array', function () {
|
|
287
|
+
var booking = {
|
|
288
|
+
roomBookings: [
|
|
289
|
+
{
|
|
290
|
+
id: 'room1',
|
|
291
|
+
numberOfAdults: 1,
|
|
292
|
+
childrenAges: [
|
|
293
|
+
{ age: 8 }, // Under adult threshold but no rates in array
|
|
294
|
+
{ age: 20 }, // Should count as adult
|
|
295
|
+
],
|
|
296
|
+
room: {
|
|
297
|
+
roomType: {
|
|
298
|
+
childrenRates: [], // Empty array
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
],
|
|
303
|
+
};
|
|
304
|
+
var result = (0, bookingsService_1.getTotalGuestCount)(booking, mockCompany);
|
|
305
|
+
expect(result).toEqual({
|
|
306
|
+
numberOfAdults: 2, // 1 + 1 (age 20)
|
|
307
|
+
numberOfChildren: 0, // No children counted since no rates available
|
|
308
|
+
});
|
|
309
|
+
});
|
|
310
|
+
});
|
|
311
|
+
});
|
|
312
|
+
//# sourceMappingURL=bookingsService.getTotalGuestCount.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bookingsService.getTotalGuestCount.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingsService.getTotalGuestCount.test.ts"],"names":[],"mappings":"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"}
|