@hyper.software/common-helpers 1.10.6 → 1.10.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.
Files changed (34) hide show
  1. package/lib/interfaces.d.ts +1 -0
  2. package/lib/interfaces.js.map +1 -1
  3. package/lib/services/bookingService/__tests__/bookingService.initialiseProducts.test.js +10 -2
  4. package/lib/services/bookingService/__tests__/bookingService.initialiseProducts.test.js.map +1 -1
  5. package/lib/services/bookingService/__tests__/bookingServicesService.getBookingServiceTotalCost.test.js +0 -1
  6. package/lib/services/bookingService/__tests__/bookingServicesService.getBookingServiceTotalCost.test.js.map +1 -1
  7. package/lib/services/bookingService/__tests__/bookingsService.test.js +413 -0
  8. package/lib/services/bookingService/__tests__/bookingsService.test.js.map +1 -0
  9. package/lib/services/bookingService/bookingInvoiceService.js +4 -1
  10. package/lib/services/bookingService/bookingInvoiceService.js.map +1 -1
  11. package/lib/services/bookingService/bookingServicesService.d.ts +1 -1
  12. package/lib/services/bookingService/bookingServicesService.js +2 -21
  13. package/lib/services/bookingService/bookingServicesService.js.map +1 -1
  14. package/lib/testingData/bookingData.js +2047 -822
  15. package/lib/testingData/bookingData.js.map +1 -1
  16. package/package.json +2 -2
  17. package/lib/services/bookingService/__tests__/bookingService.getAccommodationCost.test.js +0 -51
  18. package/lib/services/bookingService/__tests__/bookingService.getAccommodationCost.test.js.map +0 -1
  19. package/lib/services/bookingService/__tests__/bookingService.getChildrenCost.test.d.ts +0 -1
  20. package/lib/services/bookingService/__tests__/bookingService.getChildrenCost.test.js +0 -73
  21. package/lib/services/bookingService/__tests__/bookingService.getChildrenCost.test.js.map +0 -1
  22. package/lib/services/bookingService/__tests__/bookingService.getServicesCost.test.d.ts +0 -1
  23. package/lib/services/bookingService/__tests__/bookingService.getServicesCost.test.js +0 -32
  24. package/lib/services/bookingService/__tests__/bookingService.getServicesCost.test.js.map +0 -1
  25. package/lib/services/bookingService/__tests__/bookingService.getTotalCost.test.d.ts +0 -1
  26. package/lib/services/bookingService/__tests__/bookingService.getTotalCost.test.js +0 -48
  27. package/lib/services/bookingService/__tests__/bookingService.getTotalCost.test.js.map +0 -1
  28. package/lib/services/bookingService/__tests__/bookingService.manualComputeBookingTotalCost.test.d.ts +0 -1
  29. package/lib/services/bookingService/__tests__/bookingService.manualComputeBookingTotalCost.test.js +0 -185
  30. package/lib/services/bookingService/__tests__/bookingService.manualComputeBookingTotalCost.test.js.map +0 -1
  31. package/lib/services/bookingService/__tests__/bookingSevice.getLengthOfStayBooking.test.d.ts +0 -1
  32. package/lib/services/bookingService/__tests__/bookingSevice.getLengthOfStayBooking.test.js +0 -51
  33. package/lib/services/bookingService/__tests__/bookingSevice.getLengthOfStayBooking.test.js.map +0 -1
  34. /package/lib/services/bookingService/__tests__/{bookingService.getAccommodationCost.test.d.ts → bookingsService.test.d.ts} +0 -0
@@ -122,6 +122,7 @@ export interface IService extends ITimestamps {
122
122
  endDate?: DateOrString;
123
123
  }
124
124
  export interface IBookingService extends ITimestamps {
125
+ id?: string;
125
126
  bookingId?: string;
126
127
  serviceId?: string;
127
128
  companyId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAEA,IAAM,kBAAkB,GAAG,UAAU,KAAU,IAAU,OAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,KAAK,CAAC,GAAG,CAAC,EAAV,CAAU,CAAC,EAA3C,CAA2C,CAAA;AAuBpG,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EATW,QAAQ,wBAAR,QAAQ,QASnB;AACY,QAAA,YAAY,GAAG,kBAAkB,CAAW,QAAQ,CAAC,CAAA;AAIlE,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,uBAAW,CAAA;AACb,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AACY,QAAA,YAAY,GAAG,kBAAkB,CAAW,QAAQ,CAAC,CAAA;AAElE,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;AAC/B,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AACY,QAAA,iBAAiB,GAAG,kBAAkB,CAAgB,aAAa,CAAC,CAAA;AAEjF,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;IACnB,6CAA6B,CAAA;IAC7B,mCAAmB,CAAA;IACnB,+BAAe,CAAA;AACjB,CAAC,EAPW,YAAY,4BAAZ,YAAY,QAOvB;AACY,QAAA,gBAAgB,GAAG,kBAAkB,CAAe,YAAY,CAAC,CAAA;AA4B9E,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;IACnB,iCAAe,CAAA;IACf,+CAA6B,CAAA;IAC7B,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,6CAA2B,CAAA;AAC7B,CAAC,EAXW,cAAc,8BAAd,cAAc,QAWzB;AACD,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,yCAAuB,CAAA;AACzB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAEY,QAAA,kBAAkB,GAAG,kBAAkB,CAAiB,cAAc,CAAC,CAAA;AAEpF,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,iDAAyB,CAAA;IACzB,qEAA6C,CAAA;IAC7C,+CAAuB,CAAA;IACvB,6CAAqB,CAAA;AACvB,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B;AACY,QAAA,wBAAwB,GAAG,kBAAkB,CAAuB,oBAAoB,CAAC,CAAA;AAEtG,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,2DAAuC,CAAA;IACvC,2CAAuB,CAAA;AACzB,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B;AACY,QAAA,oBAAoB,GAAG,kBAAkB,CAAmB,gBAAgB,CAAC,CAAA;AAE1F,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,8DAAmC,CAAA;IACnC,sDAA2B,CAAA;AAC7B,CAAC,EAHW,uBAAuB,uCAAvB,uBAAuB,QAGlC;AACY,QAAA,2BAA2B,GAAG,kBAAkB,CAA0B,uBAAuB,CAAC,CAAA;AA0B/G,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;AACnB,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B;AAyMD,IAAY,oCAIX;AAJD,WAAY,oCAAoC;IAC9C,uEAA+B,CAAA;IAC/B,6FAAqD,CAAA;IACrD,yFAAiD,CAAA;AACnD,CAAC,EAJW,oCAAoC,oDAApC,oCAAoC,QAI/C;AACY,QAAA,wCAAwC,GAAG,kBAAkB,CACxE,oCAAoC,CACrC,CAAA;AAED,IAAY,cAQX;AARD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,uDAAqC,CAAA;IACrC,mEAAiD,CAAA;IACjD,qCAAmB,CAAA;IACnB,+CAA6B,CAAA;IAC7B,iDAA+B,CAAA;IAC/B,iEAA+C,CAAA;AACjD,CAAC,EARW,cAAc,8BAAd,cAAc,QAQzB;AACY,QAAA,kBAAkB,GAAG,kBAAkB,CAAiB,cAAc,CAAC,CAAA;AAgCpF,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,sDAAiC,CAAA;IACjC,kEAA6C,CAAA;IAC7C,0DAAqC,CAAA;AACvC,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AACY,QAAA,qBAAqB,GAAG,kBAAkB,CAAoB,iBAAiB,CAAC,CAAA;AAE7F,IAAY,wBAkBX;AAlBD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,+DAAmC,CAAA;IACnC,uEAA2C,CAAA;IAC3C,yFAA6D,CAAA;IAC7D,6EAAiD,CAAA;IACjD,qDAAyB,CAAA;IACzB,+DAAmC,CAAA;IACnC,mEAAuC,CAAA;IACvC,mDAAuB,CAAA;IACvB,uEAA2C,CAAA;IAC3C,yDAA6B,CAAA;IAC7B,yEAA6C,CAAA;IAC7C,mEAAuC,CAAA;IACvC,uEAA2C,CAAA;IAC3C,2DAA+B,CAAA;IAC/B,uEAA2C,CAAA;IAC3C,yCAAa,CAAA;AACf,CAAC,EAlBW,wBAAwB,wCAAxB,wBAAwB,QAkBnC;AAED,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,0CAA+B,CAAA;IAC/B,4CAAiC,CAAA;AACnC,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAEY,QAAA,4BAA4B,GAAG,kBAAkB,CAA2B,wBAAwB,CAAC,CAAA;AAkKlH,IAAY,4BAMX;AAND,WAAY,4BAA4B;IACtC,yDAAyB,CAAA;IACzB,qDAAqB,CAAA;IACrB,uDAAuB,CAAA;IACvB,yDAAyB,CAAA;IACzB,+CAAe,CAAA;AACjB,CAAC,EANW,4BAA4B,4CAA5B,4BAA4B,QAMvC"}
@@ -75,7 +75,7 @@ describe('initialiseProducts', function () {
75
75
  var result = (0, bookingInvoiceService_1.initialiseProducts)(companyData_1.company, bookingData_1.booking14, intl);
76
76
  expect(result).toBeDefined();
77
77
  expect(Array.isArray(result)).toBe(true);
78
- expect(result).toHaveLength(2);
78
+ expect(result).toHaveLength(3);
79
79
  var accommodationItems = result.filter(function (item) { return item.type === bookingInvoiceService_1.INVOICE_PRODUCT.ACCOMMODATION; });
80
80
  expect(accommodationItems).toHaveLength(1);
81
81
  expect(accommodationItems).toEqual(expect.arrayContaining([
@@ -96,7 +96,7 @@ describe('initialiseProducts', function () {
96
96
  }),
97
97
  ]));
98
98
  var serviceItems = result.filter(function (item) { return item.type === bookingInvoiceService_1.INVOICE_PRODUCT.SERVICE; });
99
- expect(serviceItems).toHaveLength(1);
99
+ expect(serviceItems).toHaveLength(2);
100
100
  expect(serviceItems).toEqual(expect.arrayContaining([
101
101
  expect.objectContaining({
102
102
  type: bookingInvoiceService_1.INVOICE_PRODUCT.SERVICE,
@@ -114,6 +114,14 @@ describe('initialiseProducts', function () {
114
114
  taxType: interfaces_1.SERVICE_TAX_TYPE.NO_TAX,
115
115
  total: 20,
116
116
  }),
117
+ expect.objectContaining({
118
+ description: 'Parking',
119
+ quantity: 1,
120
+ rate: 21.01,
121
+ tax: 3.99,
122
+ taxType: interfaces_1.SERVICE_TAX_TYPE.SALES_TAX,
123
+ total: 25,
124
+ }),
117
125
  ]));
118
126
  });
119
127
  });
@@ -1 +1 @@
1
- {"version":3,"file":"bookingService.initialiseProducts.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingService.initialiseProducts.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bookingService.initialiseProducts.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingService.initialiseProducts.test.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,6 @@ describe('getBookingServiceTotalCost', function () {
23
23
  startDate: null,
24
24
  endDate: null,
25
25
  },
26
- roomBookingId: null,
27
26
  };
28
27
  test('calculates cost for PER_PERSON_PER_NIGHT', function () {
29
28
  var totalCost = (0, bookingServicesService_1.getBookingServiceTotalCost)(bookingData_1.booking1, bookingService);
@@ -1 +1 @@
1
- {"version":3,"file":"bookingServicesService.getBookingServiceTotalCost.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingServicesService.getBookingServiceTotalCost.test.ts"],"names":[],"mappings":";;AAAA,kDAA0D;AAC1D,gEAA2D;AAC3D,oEAAsE;AAEtE,QAAQ,CAAC,4BAA4B,EAAE;IACrC,IAAM,cAAc,GAAG;QACrB,EAAE,EAAE,sCAAsC;QAC1C,SAAS,EAAE,sCAAsC;QACjD,SAAS,EAAE,sCAAsC;QACjD,SAAS,EAAE,sCAAsC;QACjD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;YAC5C,WAAW,EAAE,iCAAoB,CAAC,oBAAoB;SACvD;QACD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,iCAAoB,CAAC,oBAAoB;YACtD,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SACd;QACD,aAAa,EAAE,IAAI;KACpB,CAAA;IAED,IAAI,CAAC,0CAA0C,EAAE;QAC/C,IAAM,SAAS,GAAG,IAAA,mDAA0B,EAAC,sBAAQ,EAAE,cAAc,CAAC,CAAA;QACtE,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,CAAC,iCAAiC;IAC9D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"bookingServicesService.getBookingServiceTotalCost.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingServicesService.getBookingServiceTotalCost.test.ts"],"names":[],"mappings":";;AAAA,kDAA0D;AAC1D,gEAA2D;AAC3D,oEAAsE;AAEtE,QAAQ,CAAC,4BAA4B,EAAE;IACrC,IAAM,cAAc,GAAG;QACrB,EAAE,EAAE,sCAAsC;QAC1C,SAAS,EAAE,sCAAsC;QACjD,SAAS,EAAE,sCAAsC;QACjD,SAAS,EAAE,sCAAsC;QACjD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;YAC5C,WAAW,EAAE,iCAAoB,CAAC,oBAAoB;SACvD;QACD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,iCAAoB,CAAC,oBAAoB;YACtD,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SACd;KACF,CAAA;IAED,IAAI,CAAC,0CAA0C,EAAE;QAC/C,IAAM,SAAS,GAAG,IAAA,mDAA0B,EAAC,sBAAQ,EAAE,cAAc,CAAC,CAAA;QACtE,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,CAAC,iCAAiC;IAC9D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,413 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var node_test_1 = require("node:test");
4
+ var bookingsService_1 = require("../bookingsService");
5
+ var bookingData_1 = require("../../../testingData/bookingData");
6
+ var companyData_1 = require("../../../testingData/companyData");
7
+ (0, node_test_1.describe)('WHEN testing .getAccommodationCost()', function () {
8
+ it('SHOULD compute the correct accommodation cost for case 1 - A 2 day booking at the normal price without OBP or Length of stay Discount', function () {
9
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking1);
10
+ expect(accommodationCost).toBe(1341);
11
+ });
12
+ it('SHOULD compute the correct accommodation cost for case 2 - A 2-day booking with a reduced price by OBP and without Length of Stay Discount', function () {
13
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking2);
14
+ expect(accommodationCost).toBe(248);
15
+ });
16
+ it('SHOULD compute the correct accommodation cost for case 3 - A 2-day booking with services (that are enabled by default), without OBP and without Length of Stay Discount ', function () {
17
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking3);
18
+ expect(accommodationCost).toBe(298);
19
+ });
20
+ it('SHOULD compute the correct accommodation cost for case 4 - A 2-day booking with services (that are enabled by default), with OBP and without Length of Stay Discount ', function () {
21
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking4);
22
+ expect(accommodationCost).toBe(248);
23
+ });
24
+ it('SHOULD compute the correct accommodation cost for case 5 - A 3-day booking with a reduced price by OBP and by the Length of Stay Discount', function () {
25
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking5);
26
+ expect(accommodationCost).toBe(402.29999999999995);
27
+ });
28
+ it('SHOULD compute the correct accommodation cost for case 6 - A 3-day booking with services (enabled by default), with a reduced price by OBP and by the Length of Stay Discount ', function () {
29
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking6);
30
+ expect(accommodationCost).toBe(417);
31
+ });
32
+ it('SHOULD compute the correct accommodation cost for case 7 - A 2-day booking at the normal price without OBP or Length of Stay Discount, with 1 child aged 5 years (0 - 10 range)', function () {
33
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking7);
34
+ expect(accommodationCost).toBe(298);
35
+ });
36
+ it('SHOULD compute the correct accommodation cost for case 8 - A 2-day booking at the normal price with OBP or Length of Stay Discount, with 4 children of various age ranges ', function () {
37
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking8);
38
+ expect(accommodationCost).toBe(298);
39
+ });
40
+ it('SHOULD compute the correct accommodation cost for case 9 - A 2-day booking with a reduced price by OBP and without Length of Stay Discount, with 4 children of various age ranges ', function () {
41
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking9);
42
+ expect(accommodationCost).toBe(178.79999999999998);
43
+ });
44
+ it('SHOULD compute the correct accommodation cost for case 9 - A 3-day booking with normal price by OBP and with Length of Stay Discount, with 4 children of various age ranges', function () {
45
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking10);
46
+ expect(accommodationCost).toBe(447);
47
+ });
48
+ it('SHOULD compute correct accommodation cost for case 12 - A 4-day booking with services that are enabled by default and are seasonal between 2 seasons Extended stay', function () {
49
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking12);
50
+ expect(accommodationCost).toBe(1788);
51
+ });
52
+ });
53
+ (0, node_test_1.describe)('WHEN testing getChildrenCost() + getChildrenTourismTax()', function () {
54
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 1 - A 2 day booking at the normal price without OBP or Length of stay Discount', function () {
55
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking1);
56
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking1);
57
+ var childrenTotalCost = childrenCost + childrenTourismTax;
58
+ expect(childrenTotalCost).toBe(0);
59
+ });
60
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 2 - A 2-day booking with a reduced price by OBP and without Length of Stay Discount', function () {
61
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking2);
62
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking2);
63
+ var childrenTotalCost = childrenCost + childrenTourismTax;
64
+ expect(childrenTotalCost).toBe(0);
65
+ });
66
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 3 - A 2-day booking with services (that are enabled by default), without OBP and without Length of Stay Discount ', function () {
67
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking3);
68
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking3);
69
+ var childrenTotalCost = childrenCost + childrenTourismTax;
70
+ expect(childrenTotalCost).toBe(0);
71
+ });
72
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 4 - A 2-day booking with services (that are enabled by default), with OBP and without Length of Stay Discount ', function () {
73
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking4);
74
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking4);
75
+ var childrenTotalCost = childrenCost + childrenTourismTax;
76
+ expect(childrenTotalCost).toBe(0);
77
+ });
78
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 5 - A 3-day booking with a reduced price by OBP and by the Length of Stay Discount', function () {
79
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking5);
80
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking5);
81
+ var childrenTotalCost = childrenCost + childrenTourismTax;
82
+ expect(childrenTotalCost).toBe(0);
83
+ });
84
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 6 - A 3-day booking with services (enabled by default), with a reduced price by OBP and by the Length of Stay Discount ', function () {
85
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking6);
86
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking6);
87
+ var childrenTotalCost = childrenCost + childrenTourismTax;
88
+ expect(childrenTotalCost).toBe(0);
89
+ });
90
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 7 - A 2-day booking at the normal price without OBP or Length of Stay Discount, with 1 child aged 5 years (0 - 10 range)', function () {
91
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking7);
92
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking7);
93
+ var childrenTotalCost = childrenCost + childrenTourismTax;
94
+ expect(childrenTotalCost).toBe(70);
95
+ });
96
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 8 - A 2-day booking at the normal price with OBP or Length of Stay Discount, with 4 children of various age ranges ', function () {
97
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking8);
98
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking8);
99
+ var childrenTotalCost = childrenCost + childrenTourismTax;
100
+ expect(childrenTotalCost).toBe(210);
101
+ });
102
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 9 - A 2-day booking with a reduced price by OBP and without Length of Stay Discount, with 4 children of various age ranges ', function () {
103
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking9);
104
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking9);
105
+ var childrenTotalCost = childrenCost + childrenTourismTax;
106
+ expect(childrenTotalCost).toBe(210);
107
+ });
108
+ it('SHOULD compute the correct getChildrenCost() + getChildrenTourismTax() cost for case 10 - A 3-day booking with normal price by OBP and with Length of Stay Discount, with 4 children of various age ranges', function () {
109
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking10);
110
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking10);
111
+ var childrenTotalCost = childrenCost + childrenTourismTax;
112
+ expect(childrenTotalCost).toBe(315);
113
+ });
114
+ it('SHOULD compute correct accommodation cost for case 12 - A 4-day booking with services that are enabled by default and are seasonal between 2 seasons Extended stay', function () {
115
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking12);
116
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking12);
117
+ var childrenTotalCost = childrenCost + childrenTourismTax;
118
+ expect(childrenTotalCost).toBe(0);
119
+ });
120
+ });
121
+ (0, node_test_1.describe)('WHEN testing .getLengthOfStay()', function () {
122
+ it('SHOULD compute the correct length of stay for booking1', function () {
123
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking1);
124
+ expect(lengthOfStay).toBe(3);
125
+ });
126
+ it('SHOULD compute the correct length of stay for booking2', function () {
127
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking2);
128
+ expect(lengthOfStay).toBe(2);
129
+ });
130
+ it('SHOULD compute the correct length of stay for booking3', function () {
131
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking3);
132
+ expect(lengthOfStay).toBe(2);
133
+ });
134
+ it('SHOULD compute the correct length of stay for booking4', function () {
135
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking4);
136
+ expect(lengthOfStay).toBe(2);
137
+ });
138
+ it('SHOULD compute the correct length of stay for booking5', function () {
139
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking5);
140
+ expect(lengthOfStay).toBe(3);
141
+ });
142
+ it('SHOULD compute the correct length of stay for booking6', function () {
143
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking6);
144
+ expect(lengthOfStay).toBe(3);
145
+ });
146
+ it('SHOULD compute the correct length of stay for booking7', function () {
147
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking7);
148
+ expect(lengthOfStay).toBe(2);
149
+ });
150
+ it('SHOULD compute the correct length of stay for booking8', function () {
151
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking8);
152
+ expect(lengthOfStay).toBe(2);
153
+ });
154
+ it('SHOULD compute the correct length of stay for booking9', function () {
155
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking9);
156
+ expect(lengthOfStay).toBe(2);
157
+ });
158
+ it('SHOULD compute the correct length of stay for booking10', function () {
159
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking10);
160
+ expect(lengthOfStay).toBe(3);
161
+ });
162
+ it('SHOULD compute correct accommodation cost for case 12 - A 4-day booking with services that are enabled by default and are seasonal between 2 seasons Extended stay', function () {
163
+ var lengthOfStay = (0, bookingsService_1.getLengthOfStay)(bookingData_1.booking12);
164
+ expect(lengthOfStay).toBe(4);
165
+ });
166
+ });
167
+ (0, node_test_1.describe)('WHEN testing .getServicesCost()', function () {
168
+ it('SHOULD compute the correct accommodation cost for case 3 - A 2-day booking with services (that are enabled by default), without OBP and without Length of Stay Discount ', function () {
169
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking3, companyData_1.company);
170
+ expect(servicesCost).toBe(65);
171
+ });
172
+ it('SHOULD compute the correct accommodation cost for case 4 - A 2-day booking with services (that are enabled by default), with OBP and without Length of Stay Discount ', function () {
173
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking4, companyData_1.company);
174
+ expect(servicesCost).toBe(55);
175
+ });
176
+ it('SHOULD compute the correct accommodation cost for case 6 - A 3-day booking with services (enabled by default), with a reduced price by OBP and by the Length of Stay Discount ', function () {
177
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking6, companyData_1.company);
178
+ expect(servicesCost).toBe(40);
179
+ });
180
+ it('SHOULD compute correct accommodation cost for case 11 - A 3-day booking with services that are enabled by default and are seasonal between 2 seasons Extended stay and breakfast', function () {
181
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking11, companyData_1.company);
182
+ expect(servicesCost).toBe(105);
183
+ });
184
+ it('SHOULD compute correct accommodation cost for case 12 - A 4-day booking with services that are enabled by default and are seasonal between 2 seasons Extended stay', function () {
185
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking12, companyData_1.company);
186
+ expect(servicesCost).toBe(860);
187
+ });
188
+ it('SHOULD compute correct accommodation cost for case 13 - A 4-day booking with services that are enabled by default and are seasonal between 2 seasons Extended stay', function () {
189
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking13, companyData_1.company);
190
+ expect(servicesCost).toBe(240);
191
+ });
192
+ });
193
+ (0, node_test_1.describe)('WHEN computing the total cost of a booking', function () {
194
+ it('SHOULD compute the correct booking cost for case 1 - A 2 day booking at the normal price without OBP or Length of stay Discount', function () {
195
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking1);
196
+ expect(accommodationCost).toBe(1341);
197
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking1);
198
+ expect(breakfastCost).toBe(0);
199
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking1);
200
+ expect(childrenCost).toBe(0);
201
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking1);
202
+ expect(childrenTourismTax).toBe(0);
203
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking1, companyData_1.company);
204
+ expect(servicesCost).toBe(0);
205
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking1, companyData_1.company);
206
+ expect(lengthOfStayDiscount).toBe(-241.38);
207
+ var bookingTotalCost = accommodationCost + breakfastCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
208
+ expect(bookingTotalCost).toBe(1099.62);
209
+ });
210
+ it('SHOULD compute the correct booking cost for case 2 - A 2-day booking with a reduced price by OBP and without Length of Stay Discount', function () {
211
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking2);
212
+ expect(accommodationCost).toBe(248);
213
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking2);
214
+ expect(breakfastCost).toBe(0);
215
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking2);
216
+ expect(childrenCost).toBe(0);
217
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking2);
218
+ expect(childrenTourismTax).toBe(0);
219
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking2, companyData_1.company);
220
+ expect(servicesCost).toBe(0);
221
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking2, companyData_1.company);
222
+ expect(lengthOfStayDiscount).toBe(0);
223
+ var bookingTotalCost = accommodationCost + breakfastCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
224
+ expect(bookingTotalCost).toBe(248);
225
+ });
226
+ it('SHOULD compute the correct accommodation cost for case 3 - A 2-day booking with services (that are enabled by default), without OBP and without Length of Stay Discount ', function () {
227
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking3);
228
+ expect(accommodationCost).toBe(298);
229
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking3);
230
+ expect(breakfastCost).toBe(0);
231
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking3);
232
+ expect(childrenCost).toBe(0);
233
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking3);
234
+ expect(childrenTourismTax).toBe(0);
235
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking3, companyData_1.company);
236
+ expect(servicesCost).toBe(65);
237
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking3, companyData_1.company);
238
+ expect(lengthOfStayDiscount).toBe(0);
239
+ var bookingTotalCost = accommodationCost + breakfastCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
240
+ expect(bookingTotalCost).toBe(363);
241
+ });
242
+ it('SHOULD compute the correct accommodation cost for case 4 - A 2-day booking with services (that are enabled by default), with OBP and without Length of Stay Discount ', function () {
243
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking4);
244
+ expect(accommodationCost).toBe(248);
245
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking4);
246
+ expect(breakfastCost).toBe(0);
247
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking4);
248
+ expect(childrenCost).toBe(0);
249
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking4);
250
+ expect(childrenTourismTax).toBe(0);
251
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking4, companyData_1.company);
252
+ expect(servicesCost).toBe(55);
253
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking4, companyData_1.company);
254
+ expect(lengthOfStayDiscount).toBe(0);
255
+ var bookingTotalCost = accommodationCost + breakfastCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
256
+ expect(bookingTotalCost).toBe(303);
257
+ });
258
+ it('SHOULD compute the correct accommodation cost for case 5 - A 3-day booking with a reduced price by OBP and by the Length of Stay Discount', function () {
259
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking5);
260
+ expect(accommodationCost).toBe(402.29999999999995);
261
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking5);
262
+ expect(breakfastCost).toBe(30); // breakfast cost is included in the accommodation cost
263
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking5);
264
+ expect(childrenCost).toBe(0);
265
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking5);
266
+ expect(childrenTourismTax).toBe(0);
267
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking5, companyData_1.company);
268
+ expect(servicesCost).toBe(0);
269
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking5, companyData_1.company);
270
+ expect(lengthOfStayDiscount).toBe(-72.41399999999999);
271
+ var bookingTotalCost = accommodationCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
272
+ expect(bookingTotalCost).toBe(329.88599999999997);
273
+ });
274
+ it('SHOULD compute the correct accommodation cost for case 6 - A 3-day booking with services (enabled by default), with a reduced price by OBP and by the Length of Stay Discount ', function () {
275
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking6);
276
+ expect(accommodationCost).toBe(417);
277
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking6);
278
+ expect(breakfastCost).toBe(90); // breakfast cost is included in the accommodation cost
279
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking6);
280
+ expect(childrenCost).toBe(0);
281
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking6);
282
+ expect(childrenTourismTax).toBe(0);
283
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking6, companyData_1.company);
284
+ expect(servicesCost).toBe(40);
285
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking6, companyData_1.company);
286
+ expect(lengthOfStayDiscount).toBe(-75.06);
287
+ var bookingTotalCost = accommodationCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
288
+ expect(bookingTotalCost).toBe(381.94);
289
+ });
290
+ it('SHOULD compute the correct accommodation cost for case 7 - A 2-day booking at the normal price without OBP or Length of Stay Discount, with 1 child aged 5 years (0 - 10 range)', function () {
291
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking7);
292
+ expect(accommodationCost).toBe(298);
293
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking7);
294
+ expect(breakfastCost).toBe(50); // breakfast cost is included in the accommodation cost
295
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking7);
296
+ expect(childrenCost).toBe(60);
297
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking7);
298
+ expect(childrenTourismTax).toBe(10);
299
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking7, companyData_1.company);
300
+ expect(servicesCost).toBe(0);
301
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking7, companyData_1.company);
302
+ expect(lengthOfStayDiscount).toBe(0);
303
+ var bookingTotalCost = accommodationCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
304
+ expect(bookingTotalCost).toBe(368);
305
+ });
306
+ it('SHOULD compute the correct accommodation cost for case 8 - A 2-day booking at the normal price with OBP or Length of Stay Discount, with 4 children of various age ranges ', function () {
307
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking8);
308
+ expect(accommodationCost).toBe(298);
309
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking8);
310
+ expect(breakfastCost).toBe(60);
311
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking8);
312
+ expect(childrenCost).toBe(180);
313
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking8);
314
+ expect(childrenTourismTax).toBe(30);
315
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking8, companyData_1.company);
316
+ expect(servicesCost).toBe(0);
317
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking8, companyData_1.company);
318
+ expect(lengthOfStayDiscount).toBe(0);
319
+ var bookingTotalCost = accommodationCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
320
+ expect(bookingTotalCost).toBe(508);
321
+ });
322
+ it('SHOULD compute the correct accommodation cost for case 9 - A 2-day booking with a reduced price by OBP and without Length of Stay Discount, with 4 children of various age ranges ', function () {
323
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking9);
324
+ expect(accommodationCost).toBe(178.79999999999998);
325
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking9);
326
+ expect(breakfastCost).toBe(0);
327
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking9);
328
+ expect(childrenCost).toBe(160);
329
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking9);
330
+ expect(childrenTourismTax).toBe(50);
331
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking9, companyData_1.company);
332
+ expect(servicesCost).toBe(0);
333
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking9, companyData_1.company);
334
+ expect(lengthOfStayDiscount).toBe(0);
335
+ var bookingTotalCost = accommodationCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
336
+ expect(bookingTotalCost).toBe(388.79999999999995);
337
+ });
338
+ it('SHOULD compute the correct accommodation cost for case 10 - A 3-day booking with normal price by OBP and with Length of Stay Discount, with 4 children of various age ranges', function () {
339
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking10);
340
+ expect(accommodationCost).toBe(447);
341
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking10);
342
+ expect(breakfastCost).toBe(0);
343
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking10);
344
+ expect(childrenCost).toBe(240);
345
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking10);
346
+ expect(childrenTourismTax).toBe(75);
347
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking10, companyData_1.company);
348
+ expect(servicesCost).toBe(0);
349
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking10, companyData_1.company);
350
+ expect(lengthOfStayDiscount).toBe(-80.46);
351
+ var bookingTotalCost = accommodationCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
352
+ expect(bookingTotalCost).toBe(681.54);
353
+ });
354
+ it('SHOULD compute correct accommodation cost for case 11 - A 3-day booking with services that are enabled by default and are seasonal between 2 seasons Extended stay and breakfast', function () {
355
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking11);
356
+ expect(accommodationCost).toBe(447);
357
+ var breakfastCost = (0, bookingsService_1.getBreakfastCost)(bookingData_1.booking11);
358
+ expect(breakfastCost).toBe(120);
359
+ var childrenCost = (0, bookingsService_1.getChildrenCost)(bookingData_1.booking11);
360
+ expect(childrenCost).toBe(0);
361
+ var childrenTourismTax = (0, bookingsService_1.getChildrenTourismTaxCost)(bookingData_1.booking11);
362
+ expect(childrenTourismTax).toBe(0);
363
+ var servicesCost = (0, bookingsService_1.getServicesCost)(bookingData_1.booking11, companyData_1.company);
364
+ expect(servicesCost).toBe(105);
365
+ var lengthOfStayDiscount = (0, bookingsService_1.getLengthOfStayDiscount)(bookingData_1.booking11, companyData_1.company);
366
+ expect(lengthOfStayDiscount).toBe(-80.46);
367
+ var bookingTotalCost = accommodationCost + breakfastCost + childrenCost + childrenTourismTax + servicesCost + lengthOfStayDiscount;
368
+ expect(bookingTotalCost).toBe(591.54);
369
+ });
370
+ });
371
+ (0, node_test_1.describe)('WHEN testing .getTotalCost()', function () {
372
+ it('SHOULD compute the correct accommodation cost for case 1 - A 2 day booking at the normal price without OBP or Length of stay Discount', function () {
373
+ var accommodationCost = (0, bookingsService_1.getTotalCost)(bookingData_1.booking1, companyData_1.company);
374
+ expect(accommodationCost).toBe(1099.62);
375
+ });
376
+ it('SHOULD compute the correct accommodation cost for case 2 - A 2-day booking with a reduced price by OBP and without Length of Stay Discount', function () {
377
+ var accommodationCost = (0, bookingsService_1.getTotalCost)(bookingData_1.booking2, companyData_1.company);
378
+ expect(accommodationCost).toBe(248);
379
+ });
380
+ it('SHOULD compute the correct accommodation cost for case 3 - A 2-day booking with services (that are enabled by default), without OBP and without Length of Stay Discount ', function () {
381
+ var accommodationCost = (0, bookingsService_1.getAccommodationCost)(bookingData_1.booking3);
382
+ expect(accommodationCost).toBe(298);
383
+ });
384
+ it('SHOULD compute the correct accommodation cost for case 4 - A 2-day booking with services (that are enabled by default), with OBP and without Length of Stay Discount ', function () {
385
+ var accommodationCost = (0, bookingsService_1.getTotalCost)(bookingData_1.booking4, companyData_1.company);
386
+ expect(accommodationCost).toBe(303);
387
+ });
388
+ it('SHOULD compute the correct accommodation cost for case 5 - A 3-day booking with a reduced price by OBP and by the Length of Stay Discount', function () {
389
+ var accommodationCost = (0, bookingsService_1.getTotalCost)(bookingData_1.booking5, companyData_1.company);
390
+ expect(accommodationCost).toBe(329.88599999999997);
391
+ });
392
+ it('SHOULD compute the correct accommodation cost for case 6 - A 3-day booking with services (enabled by default), with a reduced price by OBP and by the Length of Stay Discount ', function () {
393
+ var accommodationCost = (0, bookingsService_1.getTotalCost)(bookingData_1.booking6, companyData_1.company);
394
+ expect(accommodationCost).toBe(381.94);
395
+ });
396
+ it('SHOULD compute the correct accommodation cost for case 7 - A 2-day booking at the normal price without OBP or Length of Stay Discount, with 1 child aged 5 years (0 - 10 range)', function () {
397
+ var accommodationCost = (0, bookingsService_1.getTotalCost)(bookingData_1.booking7, companyData_1.company);
398
+ expect(accommodationCost).toBe(368);
399
+ });
400
+ it('SHOULD compute the correct accommodation cost for case 8 - A 2-day booking at the normal price with OBP or Length of Stay Discount, with 4 children of various age ranges ', function () {
401
+ var accommodationCost = (0, bookingsService_1.getTotalCost)(bookingData_1.booking8, companyData_1.company);
402
+ expect(accommodationCost).toBe(508);
403
+ });
404
+ it('SHOULD compute the correct accommodation cost for case 9 - A 2-day booking with a reduced price by OBP and without Length of Stay Discount, with 4 children of various age ranges ', function () {
405
+ var accommodationCost = (0, bookingsService_1.getTotalCost)(bookingData_1.booking9, companyData_1.company);
406
+ expect(accommodationCost).toBe(388.79999999999995);
407
+ });
408
+ it('SHOULD compute the correct accommodation cost for case 9 - A 3-day booking with normal price by OBP and with Length of Stay Discount, with 4 children of various age ranges', function () {
409
+ var accommodationCost = (0, bookingsService_1.getTotalCost)(bookingData_1.booking10, companyData_1.company);
410
+ expect(accommodationCost).toBe(681.54);
411
+ });
412
+ });
413
+ //# sourceMappingURL=bookingsService.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bookingsService.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingsService.test.ts"],"names":[],"mappings":"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"}
@@ -271,6 +271,9 @@ var initialiseProducts = function (company, booking, intl) {
271
271
  : bookingServiceTaxType === interfaces_1.SERVICE_TAX_TYPE.REDUCED_SALES_TAX
272
272
  ? reducedSalesTax
273
273
  : 0;
274
+ var bookingServiceRate = Math.round((bookingServiceTotalCost / bookingServiceQuantity -
275
+ (0, exports.calculateSalesTax)(bookingServiceTotalCost / bookingServiceQuantity, bookingServiceTaxType === interfaces_1.SERVICE_TAX_TYPE.NO_TAX ? 0 : salesTax)) *
276
+ 100) / 100;
274
277
  var serviceExistsInAccumulator = products.find(function (product) { return product.type === INVOICE_PRODUCT.SERVICE && product.description === bookingServiceName; });
275
278
  if (serviceExistsInAccumulator) {
276
279
  serviceExistsInAccumulator.quantity = bookingServiceQuantity;
@@ -284,7 +287,7 @@ var initialiseProducts = function (company, booking, intl) {
284
287
  description: bookingServiceName,
285
288
  quantity: bookingServiceQuantity,
286
289
  taxType: bookingServiceTaxType,
287
- rate: bookingServiceTotalCost / bookingServiceQuantity,
290
+ rate: bookingServiceRate,
288
291
  tax: (0, exports.calculateSalesTax)(bookingServiceTotalCost, taxValue),
289
292
  total: bookingServiceTotalCost,
290
293
  });