@qite/tide-client 1.1.53 → 1.1.54

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 (271) hide show
  1. package/build/index.js.map +1 -1
  2. package/build/types/accommodation-occupancy.d.ts +9 -9
  3. package/build/types/accommodation-with-available-places.d.ts +15 -15
  4. package/build/types/accommodation.d.ts +7 -7
  5. package/build/types/additional-services.d.ts +5 -5
  6. package/build/types/alternative-flight-data.d.ts +10 -10
  7. package/build/types/alternative-flight-leg.d.ts +18 -18
  8. package/build/types/alternative-flight.d.ts +12 -12
  9. package/build/types/availability-request.d.ts +11 -11
  10. package/build/types/availability.d.ts +5 -5
  11. package/build/types/available-products-request.d.ts +28 -28
  12. package/build/types/availablility-request.d.ts +11 -11
  13. package/build/types/duration.d.ts +4 -4
  14. package/build/types/entry-line-meta-data.d.ts +5 -5
  15. package/build/types/enums/online-payment-type.d.ts +3 -3
  16. package/build/types/enums/print-action-group.enum.d.ts +10 -10
  17. package/build/types/flight-leg.d.ts +18 -18
  18. package/build/types/flight.d.ts +23 -23
  19. package/build/types/hotel.d.ts +34 -34
  20. package/build/types/offer/affiliates.d.ts +5 -5
  21. package/build/types/offer/booking-v2/request/tour-codes-request.d.ts +3 -3
  22. package/build/types/offer/booking-v2/shared/booking-package-room-option.d.ts +5 -1
  23. package/build/types/offer/booking-v2/shared/room-option-pax-type.d.ts +4 -0
  24. package/build/types/offer/package-search-response.d.ts +4 -4
  25. package/build/types/option-pax.d.ts +4 -4
  26. package/build/types/option.d.ts +26 -26
  27. package/build/types/package-details-request.d.ts +12 -12
  28. package/build/types/package-flight.d.ts +11 -11
  29. package/build/types/package-flights.d.ts +5 -5
  30. package/build/types/package-option.d.ts +19 -19
  31. package/build/types/package-room-option.d.ts +8 -8
  32. package/build/types/package-room.d.ts +7 -7
  33. package/build/types/package-search-destination.d.ts +9 -9
  34. package/build/types/package-search-request-date.d.ts +4 -4
  35. package/build/types/package-search-request-room.d.ts +5 -5
  36. package/build/types/package-search-request.d.ts +21 -21
  37. package/build/types/package-search-response.d.ts +4 -4
  38. package/build/types/package-search-result.d.ts +12 -12
  39. package/build/types/package-sub-option.d.ts +6 -6
  40. package/build/types/pax.d.ts +4 -4
  41. package/build/types/regime.d.ts +5 -5
  42. package/build/types/traveler-grouping.d.ts +5 -5
  43. package/build/utils/bookingClient.d.ts +9 -9
  44. package/build/utils/client.d.ts +4 -4
  45. package/package.json +64 -64
  46. package/rollup.config.js +20 -20
  47. package/src/index.ts +71 -71
  48. package/src/services/odata.service.ts +158 -158
  49. package/src/types/aapi/accommodation-occupancy.ts +9 -9
  50. package/src/types/aapi/accommodation-with-available-places.ts +15 -15
  51. package/src/types/aapi/accommodation.ts +8 -8
  52. package/src/types/aapi/additional-services.ts +6 -6
  53. package/src/types/aapi/alternative-flight-data.ts +11 -11
  54. package/src/types/aapi/alternative-flight-leg.ts +18 -18
  55. package/src/types/aapi/alternative-flight.ts +13 -13
  56. package/src/types/aapi/availability-request.ts +12 -12
  57. package/src/types/aapi/availability.ts +6 -6
  58. package/src/types/aapi/available-products-request.ts +33 -33
  59. package/src/types/aapi/duration.ts +4 -4
  60. package/src/types/aapi/flight-leg.ts +18 -18
  61. package/src/types/aapi/flight.ts +24 -24
  62. package/src/types/aapi/hotel.ts +36 -36
  63. package/src/types/aapi/index.ts +22 -22
  64. package/src/types/aapi/mollie-payment-request.ts +6 -6
  65. package/src/types/aapi/mollie-payment.ts +3 -3
  66. package/src/types/aapi/option-pax.ts +4 -4
  67. package/src/types/aapi/option.ts +29 -29
  68. package/src/types/aapi/pax.ts +4 -4
  69. package/src/types/aapi/price-detail.ts +8 -8
  70. package/src/types/aapi/regime.ts +5 -5
  71. package/src/types/aapi/traveler-grouping.ts +5 -5
  72. package/src/types/company/agent/agent-invoice-item.ts +9 -9
  73. package/src/types/company/agent/change-entry-agent-surcharge-action.model.ts +5 -5
  74. package/src/types/company/agent/entry-totals.ts +7 -7
  75. package/src/types/company/agent/index.ts +3 -3
  76. package/src/types/company/agent-print-action-request.ts +11 -11
  77. package/src/types/company/agent-print-action.ts +7 -7
  78. package/src/types/company/custom-entry-status-item.ts +6 -6
  79. package/src/types/company/index.ts +5 -5
  80. package/src/types/company/number-string-pair.ts +4 -4
  81. package/src/types/enums/allotment-type.ts +5 -5
  82. package/src/types/enums/availability-search-type.ts +4 -4
  83. package/src/types/enums/data-type.ts +14 -14
  84. package/src/types/enums/dossier-type.ts +6 -6
  85. package/src/types/enums/entry-line-flag.ts +6 -6
  86. package/src/types/enums/entry-line-status.ts +19 -19
  87. package/src/types/enums/entry-status.ts +8 -8
  88. package/src/types/enums/export-status.ts +5 -5
  89. package/src/types/enums/gender.ts +5 -5
  90. package/src/types/enums/index.ts +17 -17
  91. package/src/types/enums/meta-data-type.ts +10 -10
  92. package/src/types/enums/payment-type.ts +6 -6
  93. package/src/types/enums/price-chart-type.ts +4 -4
  94. package/src/types/enums/print-action-group.ts +10 -10
  95. package/src/types/enums/requirement-type.ts +5 -5
  96. package/src/types/enums/room-type.ts +8 -8
  97. package/src/types/enums/sale-type.ts +4 -4
  98. package/src/types/enums/service-type.ts +31 -31
  99. package/src/types/index.ts +28 -28
  100. package/src/types/odata/column.ts +8 -8
  101. package/src/types/odata/filter-item.ts +14 -14
  102. package/src/types/odata/index.ts +3 -3
  103. package/src/types/odata/odata-params.ts +3 -3
  104. package/src/types/offer/additional-services.ts +6 -6
  105. package/src/types/offer/address.ts +11 -11
  106. package/src/types/offer/affiliate.ts +5 -5
  107. package/src/types/offer/alternative-flight-data.ts +11 -11
  108. package/src/types/offer/alternative-flight-leg.ts +18 -18
  109. package/src/types/offer/alternative-flight.ts +15 -15
  110. package/src/types/offer/available-package-accommodation.ts +8 -8
  111. package/src/types/offer/available-package-flight.ts +10 -10
  112. package/src/types/offer/available-package-option.ts +18 -18
  113. package/src/types/offer/available-package-pax-price.ts +6 -6
  114. package/src/types/offer/available-package-regime.ts +4 -4
  115. package/src/types/offer/available-package.ts +8 -8
  116. package/src/types/offer/base-price.ts +6 -6
  117. package/src/types/offer/base-prices-from-date-request.ts +12 -12
  118. package/src/types/offer/base-prices-request.ts +12 -12
  119. package/src/types/offer/book-request.ts +38 -38
  120. package/src/types/offer/booking-response.ts +4 -4
  121. package/src/types/offer/booking-v2/index.ts +3 -3
  122. package/src/types/offer/booking-v2/request/bookable-dates-request.ts +4 -4
  123. package/src/types/offer/booking-v2/request/booking-package-address.ts +14 -14
  124. package/src/types/offer/booking-v2/request/booking-package-book-request.ts +26 -26
  125. package/src/types/offer/booking-v2/request/booking-package-customer-request.ts +4 -4
  126. package/src/types/offer/booking-v2/request/booking-package-destination.ts +9 -9
  127. package/src/types/offer/booking-v2/request/booking-package-details-request.ts +24 -24
  128. package/src/types/offer/booking-v2/request/booking-package-flight-pool-request.ts +13 -13
  129. package/src/types/offer/booking-v2/request/booking-package-request.ts +5 -5
  130. package/src/types/offer/booking-v2/request/booking-package-search-request.ts +30 -30
  131. package/src/types/offer/booking-v2/request/booking-package-update-request.ts +5 -5
  132. package/src/types/offer/booking-v2/request/booking-package-voucher-request.ts +4 -4
  133. package/src/types/offer/booking-v2/request/index.ts +14 -14
  134. package/src/types/offer/booking-v2/request/selected-flight.ts +6 -6
  135. package/src/types/offer/booking-v2/request/selected-hotel.ts +5 -5
  136. package/src/types/offer/booking-v2/request/tour-codes.request.ts +3 -3
  137. package/src/types/offer/booking-v2/response/bookable-dates.ts +4 -4
  138. package/src/types/offer/booking-v2/response/booking-package-allotment-info.ts +17 -17
  139. package/src/types/offer/booking-v2/response/booking-package-dossier.ts +6 -6
  140. package/src/types/offer/booking-v2/response/booking-package-flight-pool.ts +6 -6
  141. package/src/types/offer/booking-v2/response/booking-package-hotel-pool.ts +5 -5
  142. package/src/types/offer/booking-v2/response/booking-package-item.ts +40 -40
  143. package/src/types/offer/booking-v2/response/booking-price-detail.ts +20 -20
  144. package/src/types/offer/booking-v2/response/booking-price-details.ts +15 -15
  145. package/src/types/offer/booking-v2/response/booking-price-per-pax.ts +4 -4
  146. package/src/types/offer/booking-v2/response/booking-product-notification.ts +7 -7
  147. package/src/types/offer/booking-v2/response/booking-room-status-option.ts +5 -5
  148. package/src/types/offer/booking-v2/response/booking-room-status.ts +6 -6
  149. package/src/types/offer/booking-v2/response/booking-travel-agent.ts +7 -7
  150. package/src/types/offer/booking-v2/response/booking-validity-line.ts +4 -4
  151. package/src/types/offer/booking-v2/response/booking-voucher-result.ts +3 -3
  152. package/src/types/offer/booking-v2/response/changed-line.ts +4 -4
  153. package/src/types/offer/booking-v2/response/index.ts +16 -16
  154. package/src/types/offer/booking-v2/response/tide-response.ts +6 -6
  155. package/src/types/offer/booking-v2/response/tour-codes-response.ts +3 -3
  156. package/src/types/offer/booking-v2/shared/airline-booking-package-option.ts +3 -3
  157. package/src/types/offer/booking-v2/shared/airport-booking-package-option.ts +3 -3
  158. package/src/types/offer/booking-v2/shared/booking-airline-group.ts +7 -7
  159. package/src/types/offer/booking-v2/shared/booking-airport-group.ts +7 -7
  160. package/src/types/offer/booking-v2/shared/booking-option-group.ts +5 -5
  161. package/src/types/offer/booking-v2/shared/booking-option-pax.ts +14 -14
  162. package/src/types/offer/booking-v2/shared/booking-option-unit.ts +13 -13
  163. package/src/types/offer/booking-v2/shared/booking-package-flight-meta-data-line.ts +17 -17
  164. package/src/types/offer/booking-v2/shared/booking-package-flight-meta-data.ts +11 -11
  165. package/src/types/offer/booking-v2/shared/booking-package-flight.ts +15 -15
  166. package/src/types/offer/booking-v2/shared/booking-package-hotel-option.ts +10 -10
  167. package/src/types/offer/booking-v2/shared/booking-package-hotel-room.ts +6 -6
  168. package/src/types/offer/booking-v2/shared/booking-package-hotel.ts +27 -27
  169. package/src/types/offer/booking-v2/shared/booking-package-line.ts +17 -17
  170. package/src/types/offer/booking-v2/shared/booking-package-option.ts +55 -55
  171. package/src/types/offer/booking-v2/shared/booking-package-pax.ts +19 -19
  172. package/src/types/offer/booking-v2/shared/booking-package-request-room.ts +6 -6
  173. package/src/types/offer/booking-v2/shared/booking-package-room-option.ts +22 -17
  174. package/src/types/offer/booking-v2/shared/booking-package-room.ts +6 -6
  175. package/src/types/offer/booking-v2/shared/booking-package-tag.ts +5 -5
  176. package/src/types/offer/booking-v2/shared/booking-package.ts +13 -13
  177. package/src/types/offer/booking-v2/shared/index.ts +23 -23
  178. package/src/types/offer/booking-v2/shared/per-booking-package-option.ts +10 -10
  179. package/src/types/offer/booking-v2/shared/per-package-option.ts +10 -10
  180. package/src/types/offer/booking-v2/shared/per-pax-package-option.ts +6 -6
  181. package/src/types/offer/booking-v2/shared/per-unit-package-option.ts +8 -8
  182. package/src/types/offer/booking-v2/shared/room-option-pax-type.ts +4 -0
  183. package/src/types/offer/cached-package-search-result.ts +6 -6
  184. package/src/types/offer/confirmed-dossier-check.ts +6 -6
  185. package/src/types/offer/country-item.ts +5 -5
  186. package/src/types/offer/crm-contact-request.ts +37 -37
  187. package/src/types/offer/customer-request.ts +5 -5
  188. package/src/types/offer/dossier-default-product.ts +14 -14
  189. package/src/types/offer/dossier-view-result.ts +49 -49
  190. package/src/types/offer/entry-check-response.ts +5 -5
  191. package/src/types/offer/entry-line-meta-data.ts +5 -5
  192. package/src/types/offer/entry-line-pax.ts +9 -9
  193. package/src/types/offer/entry-line.ts +74 -74
  194. package/src/types/offer/entry-price-line.ts +40 -40
  195. package/src/types/offer/entry-room2.ts +5 -5
  196. package/src/types/offer/entry.ts +66 -66
  197. package/src/types/offer/flight-meta-data-line.ts +16 -16
  198. package/src/types/offer/flight-meta-data.ts +15 -15
  199. package/src/types/offer/flight-pool.ts +6 -6
  200. package/src/types/offer/index.ts +76 -76
  201. package/src/types/offer/item-tag.ts +3 -3
  202. package/src/types/offer/language.ts +5 -5
  203. package/src/types/offer/member-confirmation-request.ts +5 -5
  204. package/src/types/offer/member-forgot-password-request.ts +4 -4
  205. package/src/types/offer/member-info.ts +10 -10
  206. package/src/types/offer/member-login-request.ts +4 -4
  207. package/src/types/offer/member-login-response.ts +3 -3
  208. package/src/types/offer/member-reset-password-request.ts +4 -4
  209. package/src/types/offer/multiroom-book-request.ts +11 -11
  210. package/src/types/offer/note.ts +16 -16
  211. package/src/types/offer/other-product.ts +14 -14
  212. package/src/types/offer/package-book-request-room.ts +6 -6
  213. package/src/types/offer/package-book-request.ts +13 -13
  214. package/src/types/offer/package-flight.ts +14 -14
  215. package/src/types/offer/package-flights.ts +6 -6
  216. package/src/types/offer/package-option.ts +23 -23
  217. package/src/types/offer/package-price-details-request-room.ts +4 -4
  218. package/src/types/offer/package-price-details-request.ts +9 -9
  219. package/src/types/offer/package-room-option.ts +10 -10
  220. package/src/types/offer/package-room.ts +8 -8
  221. package/src/types/offer/package-search-destination.ts +9 -9
  222. package/src/types/offer/package-search-request-date.ts +4 -4
  223. package/src/types/offer/package-search-request-room.ts +5 -5
  224. package/src/types/offer/package-search-request.ts +23 -23
  225. package/src/types/offer/package-search-result.ts +13 -13
  226. package/src/types/offer/package-sub-option.ts +6 -6
  227. package/src/types/offer/page-result.ts +5 -5
  228. package/src/types/offer/pax.ts +30 -30
  229. package/src/types/offer/payment.ts +20 -20
  230. package/src/types/offer/person-country-preference.ts +7 -7
  231. package/src/types/offer/person-location-preference.ts +7 -7
  232. package/src/types/offer/person-oord-preference.ts +7 -7
  233. package/src/types/offer/person-period-date-range-preference.ts +6 -6
  234. package/src/types/offer/person-period-preference.ts +7 -7
  235. package/src/types/offer/person-region-preference.ts +7 -7
  236. package/src/types/offer/person-tour-group-preference.ts +7 -7
  237. package/src/types/offer/price-detail.ts +19 -19
  238. package/src/types/offer/price-per-pax.ts +6 -6
  239. package/src/types/offer/product-notification-result.ts +9 -9
  240. package/src/types/offer/web-contact-form-request.ts +13 -13
  241. package/src/types/offer/web-contact-has-tag-request.ts +4 -4
  242. package/src/types/tide-client-config.ts +5 -5
  243. package/src/utils/api.ts +54 -54
  244. package/src/utils/booking-client.ts +310 -310
  245. package/src/utils/booking-v2-client.ts +224 -224
  246. package/src/utils/common-client.ts +44 -44
  247. package/src/utils/json.ts +26 -26
  248. package/src/utils/member-client.ts +76 -76
  249. package/src/utils/mollie-client.ts +27 -27
  250. package/src/utils/search-client.ts +22 -22
  251. package/src/utils/web-agent-client.ts +176 -176
  252. package/src/utils/web-client.ts +58 -58
  253. package/src/utils/web-contact-client.ts +43 -43
  254. package/src/utils/web-file.ts +24 -24
  255. package/tests/bookingClient.test.ts +728 -728
  256. package/tests/mocks/available-products.json +183 -183
  257. package/tests/mocks/base-prices-from-date.json +74 -74
  258. package/tests/mocks/base-prices.json +236 -236
  259. package/tests/mocks/entry-multiroom.json +2043 -2043
  260. package/tests/mocks/entry-multiroom.short.json +4 -4
  261. package/tests/mocks/offer-entry.json +2043 -2043
  262. package/tests/mocks/offer-entry.short.json +4 -4
  263. package/tests/mocks/package-entry.json +2043 -2043
  264. package/tests/mocks/package-entry.short.json +4 -4
  265. package/tests/mocks/package-offer-entry.json +2043 -2043
  266. package/tests/mocks/package-offer-entry.short.json +4 -4
  267. package/tests/mocks/package-price-details.json +176 -176
  268. package/tests/mocks/package-search.json +179 -179
  269. package/tests/webClient.test.ts +38 -38
  270. package/tests/webContactClient.test.ts +61 -61
  271. package/tsconfig.json +23 -23
@@ -1,728 +1,728 @@
1
- import {
2
- AllotmentType,
3
- AvailabilitySearchType,
4
- AvailableProductsRequest,
5
- BasePricesFromDateRequest,
6
- BasePricesRequest,
7
- MultiroomBookRequest,
8
- PackageBookRequest,
9
- PackagePriceDetailsRequest,
10
- PackageSearchRequest,
11
- ServiceType,
12
- TideClientConfig,
13
- } from "../src/types";
14
- import {
15
- createEntry,
16
- createEntryWithShortResponse,
17
- createOffer,
18
- createOfferWithShortResponse,
19
- createPackageEntry,
20
- createPackageEntryWithShortResponse,
21
- createPackageOffer,
22
- createPackageOfferWithShortResponse,
23
- getAvailableProducts,
24
- getBasePrices,
25
- getBasePricesFromDate,
26
- getPackagePriceDetails,
27
- searchPackages,
28
- } from "../src/utils/booking-client";
29
-
30
- import availableProductsMock from "./mocks/available-products.json";
31
- import basePricesFromDateMock from "./mocks/base-prices-from-date.json";
32
- import basePricesMock from "./mocks/base-prices.json";
33
- import entryMultiroomMock from "./mocks/entry-multiroom.json";
34
- import entryMultiroomShortMock from "./mocks/entry-multiroom.short.json";
35
- import jestFetchMock from "jest-fetch-mock";
36
- import offerEntryMock from "./mocks/offer-entry.json";
37
- import offerEntryShortMock from "./mocks/offer-entry.short.json";
38
- import packageEntryMock from "./mocks/package-entry.json";
39
- import packageEntryShortMock from "./mocks/package-entry.short.json";
40
- import packageOfferEntryMock from "./mocks/package-offer-entry.json";
41
- import packageOfferEntryShortMock from "./mocks/package-offer-entry.short.json";
42
- import packagePriceDetailsMock from "./mocks/package-price-details.json";
43
- import packageSearchMock from "./mocks/package-search.json";
44
-
45
- describe("bookingClient", (): void => {
46
- beforeAll(() => {
47
- jestFetchMock.enableMocks();
48
- });
49
-
50
- beforeEach(() => {
51
- jestFetchMock.mockResponse((req) => {
52
- switch (req.url) {
53
- case "https://mock.com/api/web/booking/available-products":
54
- return Promise.resolve(JSON.stringify(availableProductsMock));
55
-
56
- case "https://mock.com/api/web/booking/package-search":
57
- return Promise.resolve(JSON.stringify(packageSearchMock));
58
-
59
- case "https://mock.com/api/web/booking/package-price-details":
60
- return Promise.resolve(JSON.stringify(packagePriceDetailsMock));
61
-
62
- case "https://mock.com/api/web/booking/offer-entry":
63
- return req.json().then((body) => {
64
- return body.useShortResponse
65
- ? Promise.resolve(JSON.stringify(offerEntryMock))
66
- : Promise.resolve(JSON.stringify(offerEntryShortMock));
67
- });
68
-
69
- case "https://mock.com/api/web/booking/entry-multiroom":
70
- return req.json().then((body) => {
71
- return body.useShortResponse
72
- ? Promise.resolve(JSON.stringify(entryMultiroomMock))
73
- : Promise.resolve(JSON.stringify(entryMultiroomShortMock));
74
- });
75
-
76
- case "https://mock.com/api/web/booking/package-offer-entry":
77
- return req.json().then((body) => {
78
- return body.useShortResponse
79
- ? Promise.resolve(JSON.stringify(packageOfferEntryMock))
80
- : Promise.resolve(JSON.stringify(packageOfferEntryShortMock));
81
- });
82
-
83
- case "https://mock.com/api/web/booking/package-entry":
84
- return req.json().then((body) => {
85
- return body.useShortResponse
86
- ? Promise.resolve(JSON.stringify(packageEntryMock))
87
- : Promise.resolve(JSON.stringify(packageEntryShortMock));
88
- });
89
-
90
- case "https://mock.com/api/web/booking/base-prices":
91
- return Promise.resolve(JSON.stringify(basePricesMock));
92
-
93
- case "https://mock.com/api/web/booking/base-prices-from-date":
94
- return Promise.resolve(JSON.stringify(basePricesFromDateMock));
95
-
96
- default:
97
- return Promise.reject();
98
- }
99
- });
100
- });
101
-
102
- // Just test if the call is succeeding
103
- test("getAvailableProducts", () => {
104
- const config: TideClientConfig = {
105
- host: "https://mock.com",
106
- apiKey: "key123",
107
- };
108
-
109
- const request: AvailableProductsRequest = {
110
- officeId: 1,
111
- from: new Date(2021, 0, 1),
112
- to: new Date(2022, 11, 31),
113
- calculatePrices: false,
114
- language: "nl-BE",
115
- searchType: AvailabilitySearchType.allotment,
116
- productType: ServiceType.package,
117
- travelerGroupings: [
118
- {
119
- travelerAges: [30, 30],
120
- },
121
- ],
122
- productIds: [64],
123
- allotmentType: AllotmentType.allotment,
124
- catalogueIds: [1],
125
- includePriceDetails: false,
126
- includeAllOptions: false,
127
- addDefaultProducts: false,
128
- };
129
-
130
- return getAvailableProducts(config, request).then((data) => {
131
- expect(data).toBeTruthy();
132
- });
133
- });
134
-
135
- // Just test if the call is succeeding
136
- test("searchPackages", () => {
137
- const config: TideClientConfig = {
138
- host: "https://mock.com",
139
- apiKey: "key123",
140
- };
141
-
142
- const request: PackageSearchRequest = {
143
- productType: ServiceType.package,
144
- productIds: [64],
145
- officeId: 1,
146
- catalogId: 1,
147
- rooms: [
148
- {
149
- id: 0,
150
- adultCount: 2,
151
- childCount: 0,
152
- },
153
- ],
154
- departure: {
155
- date: new Date(2022, 3, 1),
156
- timeRange: [0, 24],
157
- },
158
- arrival: {
159
- date: new Date(2022, 3, 5),
160
- timeRange: [0, 24],
161
- },
162
- onlyPreferredHotels: false,
163
- includeLuggage: true,
164
- includeInPackageDefault: false,
165
- };
166
-
167
- return searchPackages(config, request).then((data) => {
168
- expect(data).toBeTruthy();
169
- });
170
- });
171
-
172
- // Just test if the call is succeeding
173
- test("getPackagePriceDetails", () => {
174
- const config: TideClientConfig = {
175
- host: "https://mock.com",
176
- apiKey: "key123",
177
- };
178
-
179
- const request: PackagePriceDetailsRequest = {
180
- packageSearchResultCacheKey: "5e75aa74-cd69-43dd-9ec4-89342dd34b8a",
181
- officeId: 1,
182
- language: "nl-BE",
183
- rooms: [
184
- {
185
- id: 0,
186
- travelerAges: [37, 34],
187
- },
188
- ],
189
- optionGuids: ["dc924827-4d2c-4c8c-ae5f-7e4560fea998"],
190
- };
191
-
192
- return getPackagePriceDetails(config, request).then((data) => {
193
- expect(data).toBeTruthy();
194
- });
195
- });
196
-
197
- // Just test if the call is succeeding
198
- test("createOffer", () => {
199
- const config: TideClientConfig = {
200
- host: "https://mock.com",
201
- apiKey: "key123",
202
- };
203
-
204
- const request: MultiroomBookRequest = {
205
- officeId: 1,
206
- agentId: 0,
207
- catalogueId: 1,
208
- startDate: new Date(2022, 0, 2),
209
- endDate: new Date(2022, 0, 9),
210
- productCode: "TEST PK AE IN FIN JERIS ESSENCE",
211
- rooms: [
212
- {
213
- productCode: "TEST PK AE IN FIN JERIS ESSENCE",
214
- accommodationCode: "2PKST",
215
- regimeCode: "VP",
216
- startDate: new Date(2022, 0, 2),
217
- endDate: new Date(2022, 0, 9),
218
- travelers: [
219
- {
220
- id: 1,
221
- firstName: "Jan",
222
- lastName: "Jansens",
223
- dateOfBirth: new Date(1984, 4, 19),
224
- gender: 0,
225
- isMainBooker: true,
226
- guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
227
- phone: "+32 471 12 34 56",
228
- mobile: "+32 471 12 34 56",
229
- email: "jan.jansens@fake.be",
230
- },
231
- {
232
- id: 2,
233
- firstName: "Leen",
234
- lastName: "Leenders",
235
- dateOfBirth: new Date(1986, 7, 8),
236
- gender: 1,
237
- isMainBooker: false,
238
- guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
239
- },
240
- ],
241
- },
242
- ],
243
- address: {
244
- name: "Jan Jansens",
245
- street: "Nieuwstraat",
246
- number: "20",
247
- postalCode: "9000",
248
- location: "Gent",
249
- country: "be",
250
- mobilePhone: "+32 471 12 34 56",
251
- email: "jan.jansens@fake.be",
252
- },
253
- useShortResponse: true,
254
- };
255
-
256
- return createOffer(config, request).then((data) => {
257
- expect(data).toBeTruthy();
258
- });
259
- });
260
-
261
- // Just test if the call is succeeding
262
- test("createOfferWithShortResponse", () => {
263
- const config: TideClientConfig = {
264
- host: "https://mock.com",
265
- apiKey: "key123",
266
- };
267
-
268
- const request: MultiroomBookRequest = {
269
- officeId: 1,
270
- agentId: 0,
271
- catalogueId: 1,
272
- startDate: new Date(2022, 0, 2),
273
- endDate: new Date(2022, 0, 9),
274
- productCode: "TEST PK AE IN FIN JERIS ESSENCE",
275
- rooms: [
276
- {
277
- productCode: "TEST PK AE IN FIN JERIS ESSENCE",
278
- accommodationCode: "2PKST",
279
- regimeCode: "VP",
280
- startDate: new Date(2022, 0, 2),
281
- endDate: new Date(2022, 0, 9),
282
- travelers: [
283
- {
284
- id: 1,
285
- firstName: "Jan",
286
- lastName: "Jansens",
287
- dateOfBirth: new Date(1984, 4, 19),
288
- gender: 0,
289
- isMainBooker: true,
290
- guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
291
- phone: "+32 471 12 34 56",
292
- mobile: "+32 471 12 34 56",
293
- email: "jan.jansens@fake.be",
294
- },
295
- {
296
- id: 2,
297
- firstName: "Leen",
298
- lastName: "Leenders",
299
- dateOfBirth: new Date(1986, 7, 8),
300
- gender: 1,
301
- isMainBooker: false,
302
- guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
303
- },
304
- ],
305
- },
306
- ],
307
- address: {
308
- name: "Jan Jansens",
309
- street: "Nieuwstraat",
310
- number: "20",
311
- postalCode: "9000",
312
- location: "Gent",
313
- country: "be",
314
- mobilePhone: "+32 471 12 34 56",
315
- email: "jan.jansens@fake.be",
316
- },
317
- useShortResponse: true,
318
- };
319
-
320
- return createOfferWithShortResponse(config, request).then((data) => {
321
- expect(data).toBeTruthy();
322
- });
323
- });
324
-
325
- // Just test if the call is succeeding
326
- test("createEntry", () => {
327
- const config: TideClientConfig = {
328
- host: "https://mock.com",
329
- apiKey: "key123",
330
- };
331
-
332
- const request: MultiroomBookRequest = {
333
- officeId: 1,
334
- agentId: 0,
335
- catalogueId: 1,
336
- startDate: new Date(2022, 0, 2),
337
- endDate: new Date(2022, 0, 9),
338
- productCode: "TEST PK AE IN FIN JERIS ESSENCE",
339
- rooms: [
340
- {
341
- productCode: "TEST PK AE IN FIN JERIS ESSENCE",
342
- accommodationCode: "2PKST",
343
- regimeCode: "VP",
344
- startDate: new Date(2022, 0, 2),
345
- endDate: new Date(2022, 0, 9),
346
- travelers: [
347
- {
348
- id: 1,
349
- firstName: "Jan",
350
- lastName: "Jansens",
351
- dateOfBirth: new Date(1984, 4, 19),
352
- gender: 0,
353
- isMainBooker: true,
354
- guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
355
- phone: "+32 471 12 34 56",
356
- mobile: "+32 471 12 34 56",
357
- email: "jan.jansens@fake.be",
358
- },
359
- {
360
- id: 2,
361
- firstName: "Leen",
362
- lastName: "Leenders",
363
- dateOfBirth: new Date(1986, 7, 8),
364
- gender: 1,
365
- isMainBooker: false,
366
- guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
367
- },
368
- ],
369
- },
370
- ],
371
- address: {
372
- name: "Jan Jansens",
373
- street: "Nieuwstraat",
374
- number: "20",
375
- postalCode: "9000",
376
- location: "Gent",
377
- country: "be",
378
- mobilePhone: "+32 471 12 34 56",
379
- email: "jan.jansens@fake.be",
380
- },
381
- useShortResponse: true,
382
- };
383
-
384
- return createEntry(config, request).then((data) => {
385
- expect(data).toBeTruthy();
386
- });
387
- });
388
-
389
- // Just test if the call is succeeding
390
- test("createEntryWithShortResponse", () => {
391
- const config: TideClientConfig = {
392
- host: "https://mock.com",
393
- apiKey: "key123",
394
- };
395
-
396
- const request: MultiroomBookRequest = {
397
- officeId: 1,
398
- agentId: 0,
399
- catalogueId: 1,
400
- startDate: new Date(2022, 0, 2),
401
- endDate: new Date(2022, 0, 9),
402
- productCode: "TEST PK AE IN FIN JERIS ESSENCE",
403
- rooms: [
404
- {
405
- productCode: "TEST PK AE IN FIN JERIS ESSENCE",
406
- accommodationCode: "2PKST",
407
- regimeCode: "VP",
408
- startDate: new Date(2022, 0, 2),
409
- endDate: new Date(2022, 0, 9),
410
- travelers: [
411
- {
412
- id: 1,
413
- firstName: "Jan",
414
- lastName: "Jansens",
415
- dateOfBirth: new Date(1984, 4, 19),
416
- gender: 0,
417
- isMainBooker: true,
418
- guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
419
- phone: "+32 471 12 34 56",
420
- mobile: "+32 471 12 34 56",
421
- email: "jan.jansens@fake.be",
422
- },
423
- {
424
- id: 2,
425
- firstName: "Leen",
426
- lastName: "Leenders",
427
- dateOfBirth: new Date(1986, 7, 8),
428
- gender: 1,
429
- isMainBooker: false,
430
- guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
431
- },
432
- ],
433
- },
434
- ],
435
- address: {
436
- name: "Jan Jansens",
437
- street: "Nieuwstraat",
438
- number: "20",
439
- postalCode: "9000",
440
- location: "Gent",
441
- country: "be",
442
- mobilePhone: "+32 471 12 34 56",
443
- email: "jan.jansens@fake.be",
444
- },
445
- useShortResponse: true,
446
- };
447
-
448
- return createEntryWithShortResponse(config, request).then((data) => {
449
- expect(data).toBeTruthy();
450
- });
451
- });
452
-
453
- // Just test if the call is succeeding
454
- test("createPackageOffer", () => {
455
- const config: TideClientConfig = {
456
- host: "https://mock.com",
457
- apiKey: "key123",
458
- };
459
-
460
- const request: PackageBookRequest = {
461
- packageSearchResultCacheKey: "c01e2309-ec28-40da-b8bc-ce920a840110",
462
- officeId: 1,
463
- language: "nl-BE",
464
- rooms: [
465
- {
466
- id: 0,
467
- travelers: [
468
- {
469
- id: 1,
470
- firstName: "Jan",
471
- lastName: "Jansens",
472
- dateOfBirth: new Date(1984, 4, 19),
473
- gender: 0,
474
- isMainBooker: true,
475
- guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
476
- phone: "+32 471 12 34 56",
477
- mobile: "+32 471 12 34 56",
478
- email: "jan.jansens@fake.be",
479
- },
480
- {
481
- id: 2,
482
- firstName: "Leen",
483
- lastName: "Leenders",
484
- dateOfBirth: new Date(1986, 7, 8),
485
- gender: 1,
486
- isMainBooker: false,
487
- guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
488
- },
489
- ],
490
- },
491
- ],
492
- address: {
493
- name: "Jan Jansens",
494
- street: "Nieuwstraat",
495
- number: "20",
496
- postalCode: "9000",
497
- location: "Gent",
498
- country: "be",
499
- mobilePhone: "+32 471 12 34 56",
500
- email: "jan.jansens@fake.be",
501
- },
502
- optionGuids: ["62799ded-1014-44ca-bcce-e0429e871028"],
503
- useShortResponse: false,
504
- };
505
-
506
- return createPackageOffer(config, request).then((data) => {
507
- expect(data).toBeTruthy();
508
- });
509
- });
510
-
511
- // Just test if the call is succeeding
512
- test("createPackageOfferWithShortResponse", () => {
513
- const config: TideClientConfig = {
514
- host: "https://mock.com",
515
- apiKey: "key123",
516
- };
517
-
518
- const request: PackageBookRequest = {
519
- packageSearchResultCacheKey: "c01e2309-ec28-40da-b8bc-ce920a840110",
520
- officeId: 1,
521
- language: "nl-BE",
522
- rooms: [
523
- {
524
- id: 0,
525
- travelers: [
526
- {
527
- id: 1,
528
- firstName: "Jan",
529
- lastName: "Jansens",
530
- dateOfBirth: new Date(1984, 4, 19),
531
- gender: 0,
532
- isMainBooker: true,
533
- guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
534
- phone: "+32 471 12 34 56",
535
- mobile: "+32 471 12 34 56",
536
- email: "jan.jansens@fake.be",
537
- },
538
- {
539
- id: 2,
540
- firstName: "Leen",
541
- lastName: "Leenders",
542
- dateOfBirth: new Date(1986, 7, 8),
543
- gender: 1,
544
- isMainBooker: false,
545
- guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
546
- },
547
- ],
548
- },
549
- ],
550
- address: {
551
- name: "Jan Jansens",
552
- street: "Nieuwstraat",
553
- number: "20",
554
- postalCode: "9000",
555
- location: "Gent",
556
- country: "be",
557
- mobilePhone: "+32 471 12 34 56",
558
- email: "jan.jansens@fake.be",
559
- },
560
- optionGuids: ["62799ded-1014-44ca-bcce-e0429e871028"],
561
- useShortResponse: false,
562
- };
563
-
564
- return createPackageOfferWithShortResponse(config, request).then((data) => {
565
- expect(data).toBeTruthy();
566
- });
567
- });
568
-
569
- // Just test if the call is succeeding
570
- test("createPackageEntry", () => {
571
- const config: TideClientConfig = {
572
- host: "https://mock.com",
573
- apiKey: "key123",
574
- };
575
-
576
- const request: PackageBookRequest = {
577
- packageSearchResultCacheKey: "c01e2309-ec28-40da-b8bc-ce920a840110",
578
- officeId: 1,
579
- language: "nl-BE",
580
- rooms: [
581
- {
582
- id: 0,
583
- travelers: [
584
- {
585
- id: 1,
586
- firstName: "Jan",
587
- lastName: "Jansens",
588
- dateOfBirth: new Date(1984, 4, 19),
589
- gender: 0,
590
- isMainBooker: true,
591
- guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
592
- phone: "+32 471 12 34 56",
593
- mobile: "+32 471 12 34 56",
594
- email: "jan.jansens@fake.be",
595
- },
596
- {
597
- id: 2,
598
- firstName: "Leen",
599
- lastName: "Leenders",
600
- dateOfBirth: new Date(1986, 7, 8),
601
- gender: 1,
602
- isMainBooker: false,
603
- guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
604
- },
605
- ],
606
- },
607
- ],
608
- address: {
609
- name: "Jan Jansens",
610
- street: "Nieuwstraat",
611
- number: "20",
612
- postalCode: "9000",
613
- location: "Gent",
614
- country: "be",
615
- mobilePhone: "+32 471 12 34 56",
616
- email: "jan.jansens@fake.be",
617
- },
618
- optionGuids: ["62799ded-1014-44ca-bcce-e0429e871028"],
619
- useShortResponse: false,
620
- };
621
-
622
- return createPackageEntry(config, request).then((data) => {
623
- expect(data).toBeTruthy();
624
- });
625
- });
626
-
627
- // Just test if the call is succeeding
628
- test("createPackageEntryWithShortResponse", () => {
629
- const config: TideClientConfig = {
630
- host: "https://mock.com",
631
- apiKey: "key123",
632
- };
633
-
634
- const request: PackageBookRequest = {
635
- packageSearchResultCacheKey: "c01e2309-ec28-40da-b8bc-ce920a840110",
636
- officeId: 1,
637
- language: "nl-BE",
638
- rooms: [
639
- {
640
- id: 0,
641
- travelers: [
642
- {
643
- id: 1,
644
- firstName: "Jan",
645
- lastName: "Jansens",
646
- dateOfBirth: new Date(1984, 4, 19),
647
- gender: 0,
648
- isMainBooker: true,
649
- guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
650
- phone: "+32 471 12 34 56",
651
- mobile: "+32 471 12 34 56",
652
- email: "jan.jansens@fake.be",
653
- },
654
- {
655
- id: 2,
656
- firstName: "Leen",
657
- lastName: "Leenders",
658
- dateOfBirth: new Date(1986, 7, 8),
659
- gender: 1,
660
- isMainBooker: false,
661
- guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
662
- },
663
- ],
664
- },
665
- ],
666
- address: {
667
- name: "Jan Jansens",
668
- street: "Nieuwstraat",
669
- number: "20",
670
- postalCode: "9000",
671
- location: "Gent",
672
- country: "be",
673
- mobilePhone: "+32 471 12 34 56",
674
- email: "jan.jansens@fake.be",
675
- },
676
- optionGuids: ["62799ded-1014-44ca-bcce-e0429e871028"],
677
- useShortResponse: false,
678
- };
679
-
680
- return createPackageEntryWithShortResponse(config, request).then((data) => {
681
- expect(data).toBeTruthy();
682
- });
683
- });
684
-
685
- // Just test if the call is succeeding
686
- test("getBasePrices", () => {
687
- const config: TideClientConfig = {
688
- host: "https://mock.com",
689
- apiKey: "key123",
690
- };
691
-
692
- const request: BasePricesRequest = {
693
- officeId: 1,
694
- productId: 972,
695
- accommodationId: 3769,
696
- catalogueId: 1,
697
- from: new Date(2021, 8, 1),
698
- to: new Date(2021, 10, 1),
699
- duration: 7,
700
- };
701
-
702
- return getBasePrices(config, request).then((data) => {
703
- expect(data).toBeTruthy();
704
- });
705
- });
706
-
707
- // Just test if the call is succeeding
708
- test("getBasePricesFromDate", () => {
709
- const config: TideClientConfig = {
710
- host: "https://mock.com",
711
- apiKey: "key123",
712
- };
713
-
714
- const request: BasePricesFromDateRequest = {
715
- officeId: 1,
716
- productId: 972,
717
- accommodationId: 3769,
718
- catalogueId: 1,
719
- from: new Date(2021, 9, 1),
720
- to: new Date(2021, 9, 31),
721
- travellerCount: 2,
722
- };
723
-
724
- return getBasePricesFromDate(config, request).then((data) => {
725
- expect(data).toBeTruthy();
726
- });
727
- });
728
- });
1
+ import {
2
+ AllotmentType,
3
+ AvailabilitySearchType,
4
+ AvailableProductsRequest,
5
+ BasePricesFromDateRequest,
6
+ BasePricesRequest,
7
+ MultiroomBookRequest,
8
+ PackageBookRequest,
9
+ PackagePriceDetailsRequest,
10
+ PackageSearchRequest,
11
+ ServiceType,
12
+ TideClientConfig,
13
+ } from "../src/types";
14
+ import {
15
+ createEntry,
16
+ createEntryWithShortResponse,
17
+ createOffer,
18
+ createOfferWithShortResponse,
19
+ createPackageEntry,
20
+ createPackageEntryWithShortResponse,
21
+ createPackageOffer,
22
+ createPackageOfferWithShortResponse,
23
+ getAvailableProducts,
24
+ getBasePrices,
25
+ getBasePricesFromDate,
26
+ getPackagePriceDetails,
27
+ searchPackages,
28
+ } from "../src/utils/booking-client";
29
+
30
+ import availableProductsMock from "./mocks/available-products.json";
31
+ import basePricesFromDateMock from "./mocks/base-prices-from-date.json";
32
+ import basePricesMock from "./mocks/base-prices.json";
33
+ import entryMultiroomMock from "./mocks/entry-multiroom.json";
34
+ import entryMultiroomShortMock from "./mocks/entry-multiroom.short.json";
35
+ import jestFetchMock from "jest-fetch-mock";
36
+ import offerEntryMock from "./mocks/offer-entry.json";
37
+ import offerEntryShortMock from "./mocks/offer-entry.short.json";
38
+ import packageEntryMock from "./mocks/package-entry.json";
39
+ import packageEntryShortMock from "./mocks/package-entry.short.json";
40
+ import packageOfferEntryMock from "./mocks/package-offer-entry.json";
41
+ import packageOfferEntryShortMock from "./mocks/package-offer-entry.short.json";
42
+ import packagePriceDetailsMock from "./mocks/package-price-details.json";
43
+ import packageSearchMock from "./mocks/package-search.json";
44
+
45
+ describe("bookingClient", (): void => {
46
+ beforeAll(() => {
47
+ jestFetchMock.enableMocks();
48
+ });
49
+
50
+ beforeEach(() => {
51
+ jestFetchMock.mockResponse((req) => {
52
+ switch (req.url) {
53
+ case "https://mock.com/api/web/booking/available-products":
54
+ return Promise.resolve(JSON.stringify(availableProductsMock));
55
+
56
+ case "https://mock.com/api/web/booking/package-search":
57
+ return Promise.resolve(JSON.stringify(packageSearchMock));
58
+
59
+ case "https://mock.com/api/web/booking/package-price-details":
60
+ return Promise.resolve(JSON.stringify(packagePriceDetailsMock));
61
+
62
+ case "https://mock.com/api/web/booking/offer-entry":
63
+ return req.json().then((body) => {
64
+ return body.useShortResponse
65
+ ? Promise.resolve(JSON.stringify(offerEntryMock))
66
+ : Promise.resolve(JSON.stringify(offerEntryShortMock));
67
+ });
68
+
69
+ case "https://mock.com/api/web/booking/entry-multiroom":
70
+ return req.json().then((body) => {
71
+ return body.useShortResponse
72
+ ? Promise.resolve(JSON.stringify(entryMultiroomMock))
73
+ : Promise.resolve(JSON.stringify(entryMultiroomShortMock));
74
+ });
75
+
76
+ case "https://mock.com/api/web/booking/package-offer-entry":
77
+ return req.json().then((body) => {
78
+ return body.useShortResponse
79
+ ? Promise.resolve(JSON.stringify(packageOfferEntryMock))
80
+ : Promise.resolve(JSON.stringify(packageOfferEntryShortMock));
81
+ });
82
+
83
+ case "https://mock.com/api/web/booking/package-entry":
84
+ return req.json().then((body) => {
85
+ return body.useShortResponse
86
+ ? Promise.resolve(JSON.stringify(packageEntryMock))
87
+ : Promise.resolve(JSON.stringify(packageEntryShortMock));
88
+ });
89
+
90
+ case "https://mock.com/api/web/booking/base-prices":
91
+ return Promise.resolve(JSON.stringify(basePricesMock));
92
+
93
+ case "https://mock.com/api/web/booking/base-prices-from-date":
94
+ return Promise.resolve(JSON.stringify(basePricesFromDateMock));
95
+
96
+ default:
97
+ return Promise.reject();
98
+ }
99
+ });
100
+ });
101
+
102
+ // Just test if the call is succeeding
103
+ test("getAvailableProducts", () => {
104
+ const config: TideClientConfig = {
105
+ host: "https://mock.com",
106
+ apiKey: "key123",
107
+ };
108
+
109
+ const request: AvailableProductsRequest = {
110
+ officeId: 1,
111
+ from: new Date(2021, 0, 1),
112
+ to: new Date(2022, 11, 31),
113
+ calculatePrices: false,
114
+ language: "nl-BE",
115
+ searchType: AvailabilitySearchType.allotment,
116
+ productType: ServiceType.package,
117
+ travelerGroupings: [
118
+ {
119
+ travelerAges: [30, 30],
120
+ },
121
+ ],
122
+ productIds: [64],
123
+ allotmentType: AllotmentType.allotment,
124
+ catalogueIds: [1],
125
+ includePriceDetails: false,
126
+ includeAllOptions: false,
127
+ addDefaultProducts: false,
128
+ };
129
+
130
+ return getAvailableProducts(config, request).then((data) => {
131
+ expect(data).toBeTruthy();
132
+ });
133
+ });
134
+
135
+ // Just test if the call is succeeding
136
+ test("searchPackages", () => {
137
+ const config: TideClientConfig = {
138
+ host: "https://mock.com",
139
+ apiKey: "key123",
140
+ };
141
+
142
+ const request: PackageSearchRequest = {
143
+ productType: ServiceType.package,
144
+ productIds: [64],
145
+ officeId: 1,
146
+ catalogId: 1,
147
+ rooms: [
148
+ {
149
+ id: 0,
150
+ adultCount: 2,
151
+ childCount: 0,
152
+ },
153
+ ],
154
+ departure: {
155
+ date: new Date(2022, 3, 1),
156
+ timeRange: [0, 24],
157
+ },
158
+ arrival: {
159
+ date: new Date(2022, 3, 5),
160
+ timeRange: [0, 24],
161
+ },
162
+ onlyPreferredHotels: false,
163
+ includeLuggage: true,
164
+ includeInPackageDefault: false,
165
+ };
166
+
167
+ return searchPackages(config, request).then((data) => {
168
+ expect(data).toBeTruthy();
169
+ });
170
+ });
171
+
172
+ // Just test if the call is succeeding
173
+ test("getPackagePriceDetails", () => {
174
+ const config: TideClientConfig = {
175
+ host: "https://mock.com",
176
+ apiKey: "key123",
177
+ };
178
+
179
+ const request: PackagePriceDetailsRequest = {
180
+ packageSearchResultCacheKey: "5e75aa74-cd69-43dd-9ec4-89342dd34b8a",
181
+ officeId: 1,
182
+ language: "nl-BE",
183
+ rooms: [
184
+ {
185
+ id: 0,
186
+ travelerAges: [37, 34],
187
+ },
188
+ ],
189
+ optionGuids: ["dc924827-4d2c-4c8c-ae5f-7e4560fea998"],
190
+ };
191
+
192
+ return getPackagePriceDetails(config, request).then((data) => {
193
+ expect(data).toBeTruthy();
194
+ });
195
+ });
196
+
197
+ // Just test if the call is succeeding
198
+ test("createOffer", () => {
199
+ const config: TideClientConfig = {
200
+ host: "https://mock.com",
201
+ apiKey: "key123",
202
+ };
203
+
204
+ const request: MultiroomBookRequest = {
205
+ officeId: 1,
206
+ agentId: 0,
207
+ catalogueId: 1,
208
+ startDate: new Date(2022, 0, 2),
209
+ endDate: new Date(2022, 0, 9),
210
+ productCode: "TEST PK AE IN FIN JERIS ESSENCE",
211
+ rooms: [
212
+ {
213
+ productCode: "TEST PK AE IN FIN JERIS ESSENCE",
214
+ accommodationCode: "2PKST",
215
+ regimeCode: "VP",
216
+ startDate: new Date(2022, 0, 2),
217
+ endDate: new Date(2022, 0, 9),
218
+ travelers: [
219
+ {
220
+ id: 1,
221
+ firstName: "Jan",
222
+ lastName: "Jansens",
223
+ dateOfBirth: new Date(1984, 4, 19),
224
+ gender: 0,
225
+ isMainBooker: true,
226
+ guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
227
+ phone: "+32 471 12 34 56",
228
+ mobile: "+32 471 12 34 56",
229
+ email: "jan.jansens@fake.be",
230
+ },
231
+ {
232
+ id: 2,
233
+ firstName: "Leen",
234
+ lastName: "Leenders",
235
+ dateOfBirth: new Date(1986, 7, 8),
236
+ gender: 1,
237
+ isMainBooker: false,
238
+ guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
239
+ },
240
+ ],
241
+ },
242
+ ],
243
+ address: {
244
+ name: "Jan Jansens",
245
+ street: "Nieuwstraat",
246
+ number: "20",
247
+ postalCode: "9000",
248
+ location: "Gent",
249
+ country: "be",
250
+ mobilePhone: "+32 471 12 34 56",
251
+ email: "jan.jansens@fake.be",
252
+ },
253
+ useShortResponse: true,
254
+ };
255
+
256
+ return createOffer(config, request).then((data) => {
257
+ expect(data).toBeTruthy();
258
+ });
259
+ });
260
+
261
+ // Just test if the call is succeeding
262
+ test("createOfferWithShortResponse", () => {
263
+ const config: TideClientConfig = {
264
+ host: "https://mock.com",
265
+ apiKey: "key123",
266
+ };
267
+
268
+ const request: MultiroomBookRequest = {
269
+ officeId: 1,
270
+ agentId: 0,
271
+ catalogueId: 1,
272
+ startDate: new Date(2022, 0, 2),
273
+ endDate: new Date(2022, 0, 9),
274
+ productCode: "TEST PK AE IN FIN JERIS ESSENCE",
275
+ rooms: [
276
+ {
277
+ productCode: "TEST PK AE IN FIN JERIS ESSENCE",
278
+ accommodationCode: "2PKST",
279
+ regimeCode: "VP",
280
+ startDate: new Date(2022, 0, 2),
281
+ endDate: new Date(2022, 0, 9),
282
+ travelers: [
283
+ {
284
+ id: 1,
285
+ firstName: "Jan",
286
+ lastName: "Jansens",
287
+ dateOfBirth: new Date(1984, 4, 19),
288
+ gender: 0,
289
+ isMainBooker: true,
290
+ guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
291
+ phone: "+32 471 12 34 56",
292
+ mobile: "+32 471 12 34 56",
293
+ email: "jan.jansens@fake.be",
294
+ },
295
+ {
296
+ id: 2,
297
+ firstName: "Leen",
298
+ lastName: "Leenders",
299
+ dateOfBirth: new Date(1986, 7, 8),
300
+ gender: 1,
301
+ isMainBooker: false,
302
+ guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
303
+ },
304
+ ],
305
+ },
306
+ ],
307
+ address: {
308
+ name: "Jan Jansens",
309
+ street: "Nieuwstraat",
310
+ number: "20",
311
+ postalCode: "9000",
312
+ location: "Gent",
313
+ country: "be",
314
+ mobilePhone: "+32 471 12 34 56",
315
+ email: "jan.jansens@fake.be",
316
+ },
317
+ useShortResponse: true,
318
+ };
319
+
320
+ return createOfferWithShortResponse(config, request).then((data) => {
321
+ expect(data).toBeTruthy();
322
+ });
323
+ });
324
+
325
+ // Just test if the call is succeeding
326
+ test("createEntry", () => {
327
+ const config: TideClientConfig = {
328
+ host: "https://mock.com",
329
+ apiKey: "key123",
330
+ };
331
+
332
+ const request: MultiroomBookRequest = {
333
+ officeId: 1,
334
+ agentId: 0,
335
+ catalogueId: 1,
336
+ startDate: new Date(2022, 0, 2),
337
+ endDate: new Date(2022, 0, 9),
338
+ productCode: "TEST PK AE IN FIN JERIS ESSENCE",
339
+ rooms: [
340
+ {
341
+ productCode: "TEST PK AE IN FIN JERIS ESSENCE",
342
+ accommodationCode: "2PKST",
343
+ regimeCode: "VP",
344
+ startDate: new Date(2022, 0, 2),
345
+ endDate: new Date(2022, 0, 9),
346
+ travelers: [
347
+ {
348
+ id: 1,
349
+ firstName: "Jan",
350
+ lastName: "Jansens",
351
+ dateOfBirth: new Date(1984, 4, 19),
352
+ gender: 0,
353
+ isMainBooker: true,
354
+ guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
355
+ phone: "+32 471 12 34 56",
356
+ mobile: "+32 471 12 34 56",
357
+ email: "jan.jansens@fake.be",
358
+ },
359
+ {
360
+ id: 2,
361
+ firstName: "Leen",
362
+ lastName: "Leenders",
363
+ dateOfBirth: new Date(1986, 7, 8),
364
+ gender: 1,
365
+ isMainBooker: false,
366
+ guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
367
+ },
368
+ ],
369
+ },
370
+ ],
371
+ address: {
372
+ name: "Jan Jansens",
373
+ street: "Nieuwstraat",
374
+ number: "20",
375
+ postalCode: "9000",
376
+ location: "Gent",
377
+ country: "be",
378
+ mobilePhone: "+32 471 12 34 56",
379
+ email: "jan.jansens@fake.be",
380
+ },
381
+ useShortResponse: true,
382
+ };
383
+
384
+ return createEntry(config, request).then((data) => {
385
+ expect(data).toBeTruthy();
386
+ });
387
+ });
388
+
389
+ // Just test if the call is succeeding
390
+ test("createEntryWithShortResponse", () => {
391
+ const config: TideClientConfig = {
392
+ host: "https://mock.com",
393
+ apiKey: "key123",
394
+ };
395
+
396
+ const request: MultiroomBookRequest = {
397
+ officeId: 1,
398
+ agentId: 0,
399
+ catalogueId: 1,
400
+ startDate: new Date(2022, 0, 2),
401
+ endDate: new Date(2022, 0, 9),
402
+ productCode: "TEST PK AE IN FIN JERIS ESSENCE",
403
+ rooms: [
404
+ {
405
+ productCode: "TEST PK AE IN FIN JERIS ESSENCE",
406
+ accommodationCode: "2PKST",
407
+ regimeCode: "VP",
408
+ startDate: new Date(2022, 0, 2),
409
+ endDate: new Date(2022, 0, 9),
410
+ travelers: [
411
+ {
412
+ id: 1,
413
+ firstName: "Jan",
414
+ lastName: "Jansens",
415
+ dateOfBirth: new Date(1984, 4, 19),
416
+ gender: 0,
417
+ isMainBooker: true,
418
+ guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
419
+ phone: "+32 471 12 34 56",
420
+ mobile: "+32 471 12 34 56",
421
+ email: "jan.jansens@fake.be",
422
+ },
423
+ {
424
+ id: 2,
425
+ firstName: "Leen",
426
+ lastName: "Leenders",
427
+ dateOfBirth: new Date(1986, 7, 8),
428
+ gender: 1,
429
+ isMainBooker: false,
430
+ guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
431
+ },
432
+ ],
433
+ },
434
+ ],
435
+ address: {
436
+ name: "Jan Jansens",
437
+ street: "Nieuwstraat",
438
+ number: "20",
439
+ postalCode: "9000",
440
+ location: "Gent",
441
+ country: "be",
442
+ mobilePhone: "+32 471 12 34 56",
443
+ email: "jan.jansens@fake.be",
444
+ },
445
+ useShortResponse: true,
446
+ };
447
+
448
+ return createEntryWithShortResponse(config, request).then((data) => {
449
+ expect(data).toBeTruthy();
450
+ });
451
+ });
452
+
453
+ // Just test if the call is succeeding
454
+ test("createPackageOffer", () => {
455
+ const config: TideClientConfig = {
456
+ host: "https://mock.com",
457
+ apiKey: "key123",
458
+ };
459
+
460
+ const request: PackageBookRequest = {
461
+ packageSearchResultCacheKey: "c01e2309-ec28-40da-b8bc-ce920a840110",
462
+ officeId: 1,
463
+ language: "nl-BE",
464
+ rooms: [
465
+ {
466
+ id: 0,
467
+ travelers: [
468
+ {
469
+ id: 1,
470
+ firstName: "Jan",
471
+ lastName: "Jansens",
472
+ dateOfBirth: new Date(1984, 4, 19),
473
+ gender: 0,
474
+ isMainBooker: true,
475
+ guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
476
+ phone: "+32 471 12 34 56",
477
+ mobile: "+32 471 12 34 56",
478
+ email: "jan.jansens@fake.be",
479
+ },
480
+ {
481
+ id: 2,
482
+ firstName: "Leen",
483
+ lastName: "Leenders",
484
+ dateOfBirth: new Date(1986, 7, 8),
485
+ gender: 1,
486
+ isMainBooker: false,
487
+ guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
488
+ },
489
+ ],
490
+ },
491
+ ],
492
+ address: {
493
+ name: "Jan Jansens",
494
+ street: "Nieuwstraat",
495
+ number: "20",
496
+ postalCode: "9000",
497
+ location: "Gent",
498
+ country: "be",
499
+ mobilePhone: "+32 471 12 34 56",
500
+ email: "jan.jansens@fake.be",
501
+ },
502
+ optionGuids: ["62799ded-1014-44ca-bcce-e0429e871028"],
503
+ useShortResponse: false,
504
+ };
505
+
506
+ return createPackageOffer(config, request).then((data) => {
507
+ expect(data).toBeTruthy();
508
+ });
509
+ });
510
+
511
+ // Just test if the call is succeeding
512
+ test("createPackageOfferWithShortResponse", () => {
513
+ const config: TideClientConfig = {
514
+ host: "https://mock.com",
515
+ apiKey: "key123",
516
+ };
517
+
518
+ const request: PackageBookRequest = {
519
+ packageSearchResultCacheKey: "c01e2309-ec28-40da-b8bc-ce920a840110",
520
+ officeId: 1,
521
+ language: "nl-BE",
522
+ rooms: [
523
+ {
524
+ id: 0,
525
+ travelers: [
526
+ {
527
+ id: 1,
528
+ firstName: "Jan",
529
+ lastName: "Jansens",
530
+ dateOfBirth: new Date(1984, 4, 19),
531
+ gender: 0,
532
+ isMainBooker: true,
533
+ guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
534
+ phone: "+32 471 12 34 56",
535
+ mobile: "+32 471 12 34 56",
536
+ email: "jan.jansens@fake.be",
537
+ },
538
+ {
539
+ id: 2,
540
+ firstName: "Leen",
541
+ lastName: "Leenders",
542
+ dateOfBirth: new Date(1986, 7, 8),
543
+ gender: 1,
544
+ isMainBooker: false,
545
+ guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
546
+ },
547
+ ],
548
+ },
549
+ ],
550
+ address: {
551
+ name: "Jan Jansens",
552
+ street: "Nieuwstraat",
553
+ number: "20",
554
+ postalCode: "9000",
555
+ location: "Gent",
556
+ country: "be",
557
+ mobilePhone: "+32 471 12 34 56",
558
+ email: "jan.jansens@fake.be",
559
+ },
560
+ optionGuids: ["62799ded-1014-44ca-bcce-e0429e871028"],
561
+ useShortResponse: false,
562
+ };
563
+
564
+ return createPackageOfferWithShortResponse(config, request).then((data) => {
565
+ expect(data).toBeTruthy();
566
+ });
567
+ });
568
+
569
+ // Just test if the call is succeeding
570
+ test("createPackageEntry", () => {
571
+ const config: TideClientConfig = {
572
+ host: "https://mock.com",
573
+ apiKey: "key123",
574
+ };
575
+
576
+ const request: PackageBookRequest = {
577
+ packageSearchResultCacheKey: "c01e2309-ec28-40da-b8bc-ce920a840110",
578
+ officeId: 1,
579
+ language: "nl-BE",
580
+ rooms: [
581
+ {
582
+ id: 0,
583
+ travelers: [
584
+ {
585
+ id: 1,
586
+ firstName: "Jan",
587
+ lastName: "Jansens",
588
+ dateOfBirth: new Date(1984, 4, 19),
589
+ gender: 0,
590
+ isMainBooker: true,
591
+ guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
592
+ phone: "+32 471 12 34 56",
593
+ mobile: "+32 471 12 34 56",
594
+ email: "jan.jansens@fake.be",
595
+ },
596
+ {
597
+ id: 2,
598
+ firstName: "Leen",
599
+ lastName: "Leenders",
600
+ dateOfBirth: new Date(1986, 7, 8),
601
+ gender: 1,
602
+ isMainBooker: false,
603
+ guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
604
+ },
605
+ ],
606
+ },
607
+ ],
608
+ address: {
609
+ name: "Jan Jansens",
610
+ street: "Nieuwstraat",
611
+ number: "20",
612
+ postalCode: "9000",
613
+ location: "Gent",
614
+ country: "be",
615
+ mobilePhone: "+32 471 12 34 56",
616
+ email: "jan.jansens@fake.be",
617
+ },
618
+ optionGuids: ["62799ded-1014-44ca-bcce-e0429e871028"],
619
+ useShortResponse: false,
620
+ };
621
+
622
+ return createPackageEntry(config, request).then((data) => {
623
+ expect(data).toBeTruthy();
624
+ });
625
+ });
626
+
627
+ // Just test if the call is succeeding
628
+ test("createPackageEntryWithShortResponse", () => {
629
+ const config: TideClientConfig = {
630
+ host: "https://mock.com",
631
+ apiKey: "key123",
632
+ };
633
+
634
+ const request: PackageBookRequest = {
635
+ packageSearchResultCacheKey: "c01e2309-ec28-40da-b8bc-ce920a840110",
636
+ officeId: 1,
637
+ language: "nl-BE",
638
+ rooms: [
639
+ {
640
+ id: 0,
641
+ travelers: [
642
+ {
643
+ id: 1,
644
+ firstName: "Jan",
645
+ lastName: "Jansens",
646
+ dateOfBirth: new Date(1984, 4, 19),
647
+ gender: 0,
648
+ isMainBooker: true,
649
+ guid: "72c90a8f-8871-463a-96f1-292598f3b4b1",
650
+ phone: "+32 471 12 34 56",
651
+ mobile: "+32 471 12 34 56",
652
+ email: "jan.jansens@fake.be",
653
+ },
654
+ {
655
+ id: 2,
656
+ firstName: "Leen",
657
+ lastName: "Leenders",
658
+ dateOfBirth: new Date(1986, 7, 8),
659
+ gender: 1,
660
+ isMainBooker: false,
661
+ guid: "b1ccecfb-7a78-4692-8a1e-cc54191843b9",
662
+ },
663
+ ],
664
+ },
665
+ ],
666
+ address: {
667
+ name: "Jan Jansens",
668
+ street: "Nieuwstraat",
669
+ number: "20",
670
+ postalCode: "9000",
671
+ location: "Gent",
672
+ country: "be",
673
+ mobilePhone: "+32 471 12 34 56",
674
+ email: "jan.jansens@fake.be",
675
+ },
676
+ optionGuids: ["62799ded-1014-44ca-bcce-e0429e871028"],
677
+ useShortResponse: false,
678
+ };
679
+
680
+ return createPackageEntryWithShortResponse(config, request).then((data) => {
681
+ expect(data).toBeTruthy();
682
+ });
683
+ });
684
+
685
+ // Just test if the call is succeeding
686
+ test("getBasePrices", () => {
687
+ const config: TideClientConfig = {
688
+ host: "https://mock.com",
689
+ apiKey: "key123",
690
+ };
691
+
692
+ const request: BasePricesRequest = {
693
+ officeId: 1,
694
+ productId: 972,
695
+ accommodationId: 3769,
696
+ catalogueId: 1,
697
+ from: new Date(2021, 8, 1),
698
+ to: new Date(2021, 10, 1),
699
+ duration: 7,
700
+ };
701
+
702
+ return getBasePrices(config, request).then((data) => {
703
+ expect(data).toBeTruthy();
704
+ });
705
+ });
706
+
707
+ // Just test if the call is succeeding
708
+ test("getBasePricesFromDate", () => {
709
+ const config: TideClientConfig = {
710
+ host: "https://mock.com",
711
+ apiKey: "key123",
712
+ };
713
+
714
+ const request: BasePricesFromDateRequest = {
715
+ officeId: 1,
716
+ productId: 972,
717
+ accommodationId: 3769,
718
+ catalogueId: 1,
719
+ from: new Date(2021, 9, 1),
720
+ to: new Date(2021, 9, 31),
721
+ travellerCount: 2,
722
+ };
723
+
724
+ return getBasePricesFromDate(config, request).then((data) => {
725
+ expect(data).toBeTruthy();
726
+ });
727
+ });
728
+ });