@qite/tide-client 1.1.52 → 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 (273) 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-availability.d.ts +1 -0
  23. package/build/types/offer/booking-v2/shared/booking-package-room-option.d.ts +5 -1
  24. package/build/types/offer/booking-v2/shared/room-option-pax-type.d.ts +4 -0
  25. package/build/types/offer/package-search-response.d.ts +4 -4
  26. package/build/types/option-pax.d.ts +4 -4
  27. package/build/types/option.d.ts +26 -26
  28. package/build/types/package-details-request.d.ts +12 -12
  29. package/build/types/package-flight.d.ts +11 -11
  30. package/build/types/package-flights.d.ts +5 -5
  31. package/build/types/package-option.d.ts +19 -19
  32. package/build/types/package-room-option.d.ts +8 -8
  33. package/build/types/package-room.d.ts +7 -7
  34. package/build/types/package-search-destination.d.ts +9 -9
  35. package/build/types/package-search-request-date.d.ts +4 -4
  36. package/build/types/package-search-request-room.d.ts +5 -5
  37. package/build/types/package-search-request.d.ts +21 -21
  38. package/build/types/package-search-response.d.ts +4 -4
  39. package/build/types/package-search-result.d.ts +12 -12
  40. package/build/types/package-sub-option.d.ts +6 -6
  41. package/build/types/pax.d.ts +4 -4
  42. package/build/types/regime.d.ts +5 -5
  43. package/build/types/traveler-grouping.d.ts +5 -5
  44. package/build/utils/bookingClient.d.ts +9 -9
  45. package/build/utils/client.d.ts +4 -4
  46. package/package.json +64 -64
  47. package/rollup.config.js +20 -20
  48. package/src/index.ts +71 -71
  49. package/src/services/odata.service.ts +158 -158
  50. package/src/types/aapi/accommodation-occupancy.ts +9 -9
  51. package/src/types/aapi/accommodation-with-available-places.ts +15 -15
  52. package/src/types/aapi/accommodation.ts +8 -8
  53. package/src/types/aapi/additional-services.ts +6 -6
  54. package/src/types/aapi/alternative-flight-data.ts +11 -11
  55. package/src/types/aapi/alternative-flight-leg.ts +18 -18
  56. package/src/types/aapi/alternative-flight.ts +13 -13
  57. package/src/types/aapi/availability-request.ts +12 -12
  58. package/src/types/aapi/availability.ts +6 -6
  59. package/src/types/aapi/available-products-request.ts +33 -33
  60. package/src/types/aapi/duration.ts +4 -4
  61. package/src/types/aapi/flight-leg.ts +18 -18
  62. package/src/types/aapi/flight.ts +24 -24
  63. package/src/types/aapi/hotel.ts +36 -36
  64. package/src/types/aapi/index.ts +22 -22
  65. package/src/types/aapi/mollie-payment-request.ts +6 -6
  66. package/src/types/aapi/mollie-payment.ts +3 -3
  67. package/src/types/aapi/option-pax.ts +4 -4
  68. package/src/types/aapi/option.ts +29 -29
  69. package/src/types/aapi/pax.ts +4 -4
  70. package/src/types/aapi/price-detail.ts +8 -8
  71. package/src/types/aapi/regime.ts +5 -5
  72. package/src/types/aapi/traveler-grouping.ts +5 -5
  73. package/src/types/company/agent/agent-invoice-item.ts +9 -9
  74. package/src/types/company/agent/change-entry-agent-surcharge-action.model.ts +5 -5
  75. package/src/types/company/agent/entry-totals.ts +7 -7
  76. package/src/types/company/agent/index.ts +3 -3
  77. package/src/types/company/agent-print-action-request.ts +11 -11
  78. package/src/types/company/agent-print-action.ts +7 -7
  79. package/src/types/company/custom-entry-status-item.ts +6 -6
  80. package/src/types/company/index.ts +5 -5
  81. package/src/types/company/number-string-pair.ts +4 -4
  82. package/src/types/enums/allotment-type.ts +5 -5
  83. package/src/types/enums/availability-search-type.ts +4 -4
  84. package/src/types/enums/data-type.ts +14 -14
  85. package/src/types/enums/dossier-type.ts +6 -6
  86. package/src/types/enums/entry-line-flag.ts +6 -6
  87. package/src/types/enums/entry-line-status.ts +19 -19
  88. package/src/types/enums/entry-status.ts +8 -8
  89. package/src/types/enums/export-status.ts +5 -5
  90. package/src/types/enums/gender.ts +5 -5
  91. package/src/types/enums/index.ts +17 -17
  92. package/src/types/enums/meta-data-type.ts +10 -10
  93. package/src/types/enums/payment-type.ts +6 -6
  94. package/src/types/enums/price-chart-type.ts +4 -4
  95. package/src/types/enums/print-action-group.ts +10 -10
  96. package/src/types/enums/requirement-type.ts +5 -5
  97. package/src/types/enums/room-type.ts +8 -8
  98. package/src/types/enums/sale-type.ts +4 -4
  99. package/src/types/enums/service-type.ts +31 -31
  100. package/src/types/index.ts +28 -28
  101. package/src/types/odata/column.ts +8 -8
  102. package/src/types/odata/filter-item.ts +14 -14
  103. package/src/types/odata/index.ts +3 -3
  104. package/src/types/odata/odata-params.ts +3 -3
  105. package/src/types/offer/additional-services.ts +6 -6
  106. package/src/types/offer/address.ts +11 -11
  107. package/src/types/offer/affiliate.ts +5 -5
  108. package/src/types/offer/alternative-flight-data.ts +11 -11
  109. package/src/types/offer/alternative-flight-leg.ts +18 -18
  110. package/src/types/offer/alternative-flight.ts +15 -15
  111. package/src/types/offer/available-package-accommodation.ts +8 -8
  112. package/src/types/offer/available-package-flight.ts +10 -10
  113. package/src/types/offer/available-package-option.ts +18 -18
  114. package/src/types/offer/available-package-pax-price.ts +6 -6
  115. package/src/types/offer/available-package-regime.ts +4 -4
  116. package/src/types/offer/available-package.ts +8 -8
  117. package/src/types/offer/base-price.ts +6 -6
  118. package/src/types/offer/base-prices-from-date-request.ts +12 -12
  119. package/src/types/offer/base-prices-request.ts +12 -12
  120. package/src/types/offer/book-request.ts +38 -38
  121. package/src/types/offer/booking-response.ts +4 -4
  122. package/src/types/offer/booking-v2/index.ts +3 -3
  123. package/src/types/offer/booking-v2/request/bookable-dates-request.ts +4 -4
  124. package/src/types/offer/booking-v2/request/booking-package-address.ts +14 -14
  125. package/src/types/offer/booking-v2/request/booking-package-book-request.ts +26 -26
  126. package/src/types/offer/booking-v2/request/booking-package-customer-request.ts +4 -4
  127. package/src/types/offer/booking-v2/request/booking-package-destination.ts +9 -9
  128. package/src/types/offer/booking-v2/request/booking-package-details-request.ts +24 -24
  129. package/src/types/offer/booking-v2/request/booking-package-flight-pool-request.ts +13 -13
  130. package/src/types/offer/booking-v2/request/booking-package-request.ts +5 -5
  131. package/src/types/offer/booking-v2/request/booking-package-search-request.ts +30 -30
  132. package/src/types/offer/booking-v2/request/booking-package-update-request.ts +5 -5
  133. package/src/types/offer/booking-v2/request/booking-package-voucher-request.ts +4 -4
  134. package/src/types/offer/booking-v2/request/index.ts +14 -14
  135. package/src/types/offer/booking-v2/request/selected-flight.ts +6 -6
  136. package/src/types/offer/booking-v2/request/selected-hotel.ts +5 -5
  137. package/src/types/offer/booking-v2/request/tour-codes.request.ts +3 -3
  138. package/src/types/offer/booking-v2/response/bookable-dates.ts +4 -4
  139. package/src/types/offer/booking-v2/response/booking-package-allotment-info.ts +17 -17
  140. package/src/types/offer/booking-v2/response/booking-package-dossier.ts +6 -6
  141. package/src/types/offer/booking-v2/response/booking-package-flight-pool.ts +6 -6
  142. package/src/types/offer/booking-v2/response/booking-package-hotel-pool.ts +5 -5
  143. package/src/types/offer/booking-v2/response/booking-package-item.ts +40 -40
  144. package/src/types/offer/booking-v2/response/booking-price-detail.ts +20 -20
  145. package/src/types/offer/booking-v2/response/booking-price-details.ts +15 -15
  146. package/src/types/offer/booking-v2/response/booking-price-per-pax.ts +4 -4
  147. package/src/types/offer/booking-v2/response/booking-product-notification.ts +7 -7
  148. package/src/types/offer/booking-v2/response/booking-room-status-option.ts +5 -5
  149. package/src/types/offer/booking-v2/response/booking-room-status.ts +6 -6
  150. package/src/types/offer/booking-v2/response/booking-travel-agent.ts +7 -7
  151. package/src/types/offer/booking-v2/response/booking-validity-line.ts +4 -4
  152. package/src/types/offer/booking-v2/response/booking-voucher-result.ts +3 -3
  153. package/src/types/offer/booking-v2/response/changed-line.ts +4 -4
  154. package/src/types/offer/booking-v2/response/index.ts +16 -16
  155. package/src/types/offer/booking-v2/response/tide-response.ts +6 -6
  156. package/src/types/offer/booking-v2/response/tour-codes-response.ts +3 -3
  157. package/src/types/offer/booking-v2/shared/airline-booking-package-option.ts +3 -3
  158. package/src/types/offer/booking-v2/shared/airport-booking-package-option.ts +3 -3
  159. package/src/types/offer/booking-v2/shared/booking-airline-group.ts +7 -7
  160. package/src/types/offer/booking-v2/shared/booking-airport-group.ts +7 -7
  161. package/src/types/offer/booking-v2/shared/booking-option-group.ts +5 -5
  162. package/src/types/offer/booking-v2/shared/booking-option-pax.ts +14 -14
  163. package/src/types/offer/booking-v2/shared/booking-option-unit.ts +13 -13
  164. package/src/types/offer/booking-v2/shared/booking-package-availability.ts +9 -8
  165. package/src/types/offer/booking-v2/shared/booking-package-flight-meta-data-line.ts +17 -17
  166. package/src/types/offer/booking-v2/shared/booking-package-flight-meta-data.ts +11 -11
  167. package/src/types/offer/booking-v2/shared/booking-package-flight.ts +15 -15
  168. package/src/types/offer/booking-v2/shared/booking-package-hotel-option.ts +10 -10
  169. package/src/types/offer/booking-v2/shared/booking-package-hotel-room.ts +6 -6
  170. package/src/types/offer/booking-v2/shared/booking-package-hotel.ts +27 -27
  171. package/src/types/offer/booking-v2/shared/booking-package-line.ts +17 -17
  172. package/src/types/offer/booking-v2/shared/booking-package-option.ts +55 -55
  173. package/src/types/offer/booking-v2/shared/booking-package-pax.ts +19 -19
  174. package/src/types/offer/booking-v2/shared/booking-package-request-room.ts +6 -6
  175. package/src/types/offer/booking-v2/shared/booking-package-room-option.ts +22 -17
  176. package/src/types/offer/booking-v2/shared/booking-package-room.ts +6 -6
  177. package/src/types/offer/booking-v2/shared/booking-package-tag.ts +5 -5
  178. package/src/types/offer/booking-v2/shared/booking-package.ts +13 -13
  179. package/src/types/offer/booking-v2/shared/index.ts +23 -23
  180. package/src/types/offer/booking-v2/shared/per-booking-package-option.ts +10 -10
  181. package/src/types/offer/booking-v2/shared/per-package-option.ts +10 -10
  182. package/src/types/offer/booking-v2/shared/per-pax-package-option.ts +6 -6
  183. package/src/types/offer/booking-v2/shared/per-unit-package-option.ts +8 -8
  184. package/src/types/offer/booking-v2/shared/room-option-pax-type.ts +4 -0
  185. package/src/types/offer/cached-package-search-result.ts +6 -6
  186. package/src/types/offer/confirmed-dossier-check.ts +6 -6
  187. package/src/types/offer/country-item.ts +5 -5
  188. package/src/types/offer/crm-contact-request.ts +37 -37
  189. package/src/types/offer/customer-request.ts +5 -5
  190. package/src/types/offer/dossier-default-product.ts +14 -14
  191. package/src/types/offer/dossier-view-result.ts +49 -49
  192. package/src/types/offer/entry-check-response.ts +5 -5
  193. package/src/types/offer/entry-line-meta-data.ts +5 -5
  194. package/src/types/offer/entry-line-pax.ts +9 -9
  195. package/src/types/offer/entry-line.ts +74 -74
  196. package/src/types/offer/entry-price-line.ts +40 -40
  197. package/src/types/offer/entry-room2.ts +5 -5
  198. package/src/types/offer/entry.ts +66 -66
  199. package/src/types/offer/flight-meta-data-line.ts +16 -16
  200. package/src/types/offer/flight-meta-data.ts +15 -15
  201. package/src/types/offer/flight-pool.ts +6 -6
  202. package/src/types/offer/index.ts +76 -76
  203. package/src/types/offer/item-tag.ts +3 -3
  204. package/src/types/offer/language.ts +5 -5
  205. package/src/types/offer/member-confirmation-request.ts +5 -5
  206. package/src/types/offer/member-forgot-password-request.ts +4 -4
  207. package/src/types/offer/member-info.ts +10 -10
  208. package/src/types/offer/member-login-request.ts +4 -4
  209. package/src/types/offer/member-login-response.ts +3 -3
  210. package/src/types/offer/member-reset-password-request.ts +4 -4
  211. package/src/types/offer/multiroom-book-request.ts +11 -11
  212. package/src/types/offer/note.ts +16 -16
  213. package/src/types/offer/other-product.ts +14 -14
  214. package/src/types/offer/package-book-request-room.ts +6 -6
  215. package/src/types/offer/package-book-request.ts +13 -13
  216. package/src/types/offer/package-flight.ts +14 -14
  217. package/src/types/offer/package-flights.ts +6 -6
  218. package/src/types/offer/package-option.ts +23 -23
  219. package/src/types/offer/package-price-details-request-room.ts +4 -4
  220. package/src/types/offer/package-price-details-request.ts +9 -9
  221. package/src/types/offer/package-room-option.ts +10 -10
  222. package/src/types/offer/package-room.ts +8 -8
  223. package/src/types/offer/package-search-destination.ts +9 -9
  224. package/src/types/offer/package-search-request-date.ts +4 -4
  225. package/src/types/offer/package-search-request-room.ts +5 -5
  226. package/src/types/offer/package-search-request.ts +23 -23
  227. package/src/types/offer/package-search-result.ts +13 -13
  228. package/src/types/offer/package-sub-option.ts +6 -6
  229. package/src/types/offer/page-result.ts +5 -5
  230. package/src/types/offer/pax.ts +30 -30
  231. package/src/types/offer/payment.ts +20 -20
  232. package/src/types/offer/person-country-preference.ts +7 -7
  233. package/src/types/offer/person-location-preference.ts +7 -7
  234. package/src/types/offer/person-oord-preference.ts +7 -7
  235. package/src/types/offer/person-period-date-range-preference.ts +6 -6
  236. package/src/types/offer/person-period-preference.ts +7 -7
  237. package/src/types/offer/person-region-preference.ts +7 -7
  238. package/src/types/offer/person-tour-group-preference.ts +7 -7
  239. package/src/types/offer/price-detail.ts +19 -19
  240. package/src/types/offer/price-per-pax.ts +6 -6
  241. package/src/types/offer/product-notification-result.ts +9 -9
  242. package/src/types/offer/web-contact-form-request.ts +13 -13
  243. package/src/types/offer/web-contact-has-tag-request.ts +4 -4
  244. package/src/types/tide-client-config.ts +5 -5
  245. package/src/utils/api.ts +54 -54
  246. package/src/utils/booking-client.ts +310 -310
  247. package/src/utils/booking-v2-client.ts +224 -224
  248. package/src/utils/common-client.ts +44 -44
  249. package/src/utils/json.ts +26 -26
  250. package/src/utils/member-client.ts +76 -76
  251. package/src/utils/mollie-client.ts +27 -27
  252. package/src/utils/search-client.ts +22 -22
  253. package/src/utils/web-agent-client.ts +176 -176
  254. package/src/utils/web-client.ts +58 -58
  255. package/src/utils/web-contact-client.ts +43 -43
  256. package/src/utils/web-file.ts +24 -24
  257. package/tests/bookingClient.test.ts +728 -728
  258. package/tests/mocks/available-products.json +183 -183
  259. package/tests/mocks/base-prices-from-date.json +74 -74
  260. package/tests/mocks/base-prices.json +236 -236
  261. package/tests/mocks/entry-multiroom.json +2043 -2043
  262. package/tests/mocks/entry-multiroom.short.json +4 -4
  263. package/tests/mocks/offer-entry.json +2043 -2043
  264. package/tests/mocks/offer-entry.short.json +4 -4
  265. package/tests/mocks/package-entry.json +2043 -2043
  266. package/tests/mocks/package-entry.short.json +4 -4
  267. package/tests/mocks/package-offer-entry.json +2043 -2043
  268. package/tests/mocks/package-offer-entry.short.json +4 -4
  269. package/tests/mocks/package-price-details.json +176 -176
  270. package/tests/mocks/package-search.json +179 -179
  271. package/tests/webClient.test.ts +38 -38
  272. package/tests/webContactClient.test.ts +61 -61
  273. 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
+ });