@mirai/core 0.4.35 → 0.4.37

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 (219) hide show
  1. package/build/components/__shared__/ButtonPayment/ButtonPayment.constants.js +7 -4
  2. package/build/components/__shared__/ButtonPayment/ButtonPayment.constants.js.map +1 -1
  3. package/build/components/__shared__/ButtonPayment/ButtonPayment.js +4 -3
  4. package/build/components/__shared__/ButtonPayment/ButtonPayment.js.map +1 -1
  5. package/build/components/__shared__/Payment/components/AmazonPay/AmazonPay.js +4 -4
  6. package/build/components/__shared__/Payment/components/AmazonPay/AmazonPay.js.map +1 -1
  7. package/build/components/__shared__/Payment/components/Aplazame/Aplazame.js +2 -2
  8. package/build/components/__shared__/Payment/components/Aplazame/Aplazame.js.map +1 -1
  9. package/build/components/__shared__/Payment/components/PCI/PCI.js +2 -2
  10. package/build/components/__shared__/Payment/components/PCI/PCI.js.map +1 -1
  11. package/package.json +1 -1
  12. package/.env +0 -22
  13. package/.gitlab-ci.yml +0 -4
  14. package/.nvmrc +0 -1
  15. package/__tests__/Booking/__mocks__/booking-delete.json +0 -1
  16. package/__tests__/Booking/__mocks__/booking-get.json +0 -105
  17. package/__tests__/Booking/booking.constants.js +0 -8
  18. package/__tests__/Booking/workflows/cancel.workflow.js +0 -20
  19. package/__tests__/Booking/workflows/index.js +0 -5
  20. package/__tests__/Booking/workflows/openMobileMenu.workflow.js +0 -4
  21. package/__tests__/Booking/workflows/print.workflow.js +0 -13
  22. package/__tests__/Booking/workflows/resend.workflow.js +0 -18
  23. package/__tests__/Booking/workflows/review.workflow.js +0 -17
  24. package/__tests__/BookingQuery/__mocks__/user-booking-get.json +0 -9
  25. package/__tests__/BookingQuery/workflows/index.js +0 -1
  26. package/__tests__/BookingQuery/workflows/login.workflow.js +0 -22
  27. package/__tests__/Checkout/__mocks__/checkout-get.json +0 -935
  28. package/__tests__/Checkout/__mocks__/checkout-post-PAYLATER.json +0 -10
  29. package/__tests__/Checkout/__mocks__/checkout-post-TPV.json +0 -7
  30. package/__tests__/Checkout/__mocks__/checkout-post-TRANSFER.json +0 -10
  31. package/__tests__/Checkout/checkout.constants.js +0 -8
  32. package/__tests__/Checkout/workflows/form.workflow.js +0 -17
  33. package/__tests__/Checkout/workflows/index.js +0 -4
  34. package/__tests__/Checkout/workflows/payment.workflow.js +0 -10
  35. package/__tests__/Checkout/workflows/review.workflow.js +0 -19
  36. package/__tests__/Checkout/workflows/submit.workflow.js +0 -9
  37. package/__tests__/Deals/__mocks__/deals-success.json +0 -739
  38. package/__tests__/Deals/workflows/calendar.workflow.js +0 -14
  39. package/__tests__/Deals/workflows/clear.workflow.js +0 -7
  40. package/__tests__/Deals/workflows/index.js +0 -5
  41. package/__tests__/Deals/workflows/occupation.workflow.js +0 -6
  42. package/__tests__/Deals/workflows/promocode.workflow.js +0 -3
  43. package/__tests__/Deals/workflows/submit.workflow.js +0 -6
  44. package/__tests__/Finder/workflows/calendar.workflow.js +0 -10
  45. package/__tests__/Finder/workflows/index.js +0 -3
  46. package/__tests__/Finder/workflows/occupation.workflow.js +0 -27
  47. package/__tests__/Finder/workflows/promocode.workflow.js +0 -8
  48. package/__tests__/Rates/__mocks__/extras-one-success.json +0 -138
  49. package/__tests__/Rates/__mocks__/extras-success.json +0 -397
  50. package/__tests__/Rates/__mocks__/rates-success.json +0 -731
  51. package/__tests__/Rates/workflows/extras.js +0 -9
  52. package/__tests__/Rates/workflows/extrasExpect.js +0 -11
  53. package/__tests__/Rates/workflows/index.js +0 -4
  54. package/__tests__/Rates/workflows/multiroom.js +0 -26
  55. package/__tests__/Rates/workflows/rates.js +0 -9
  56. package/__tests__/Session/workflows/bookings.workflow.js +0 -18
  57. package/__tests__/Session/workflows/forgotPassword.workflow.js +0 -20
  58. package/__tests__/Session/workflows/index.js +0 -5
  59. package/__tests__/Session/workflows/login.workflow.js +0 -29
  60. package/__tests__/Session/workflows/logout.workflow.js +0 -8
  61. package/__tests__/Session/workflows/profile.workflow.js +0 -49
  62. package/__tests__/Signup/workflows/index.js +0 -2
  63. package/__tests__/Signup/workflows/signup.workflow.js +0 -26
  64. package/__tests__/Signup/workflows/signupError.workflow.js +0 -22
  65. package/__tests__/__screenshots__/rates.spec.jsx/Desktop/Search-multiroom-with-one-extras-1.png +0 -0
  66. package/__tests__/__screenshots__/rates.spec.jsx/Desktop/Search-multiroom-with-some-extras-1.png +0 -0
  67. package/__tests__/__screenshots__/rates.spec.jsx/iPhone-12/Search-multiroom-with-one-extras-1.png +0 -0
  68. package/__tests__/__screenshots__/rates.spec.jsx/iPhone-12/Search-multiroom-with-some-extras-1.png +0 -0
  69. package/__tests__/booking.spec.jsx +0 -34
  70. package/__tests__/bookingQuey.spec.js +0 -43
  71. package/__tests__/buttonFinder.spec.js +0 -16
  72. package/__tests__/checkout.spec.jsx +0 -52
  73. package/__tests__/constants.js +0 -20
  74. package/__tests__/deals.spec.js +0 -30
  75. package/__tests__/finder.spec.js +0 -75
  76. package/__tests__/helpers/closeNotification.js +0 -7
  77. package/__tests__/helpers/getWeekNumber.js +0 -8
  78. package/__tests__/helpers/index.js +0 -2
  79. package/__tests__/rates.spec.jsx +0 -39
  80. package/__tests__/session.spec.js +0 -32
  81. package/__tests__/signup.spec.js +0 -17
  82. package/build/components/BannerLoyalty/__tests__/__snapshots__/BannerLoyalty.skeleton.test.js.snap +0 -287
  83. package/build/components/BannerLoyalty/__tests__/__snapshots__/BannerLoyalty.test.js.snap +0 -102
  84. package/build/components/Booking/__tests__/__snapshots__/Booking.test.js.snap +0 -1302
  85. package/build/components/Booking/components/Field/__tests__/__snapshots__/Field.test.js.snap +0 -139
  86. package/build/components/Booking/components/Hotelverse/__tests__/__snapshots__/Hotelverse.test.js.snap +0 -108
  87. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.FormCancel.test.js.snap +0 -546
  88. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.FormEdit.test.js.snap +0 -46
  89. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.FormResend.test.js.snap +0 -166
  90. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Information.test.js.snap +0 -110
  91. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Menu.test.js.snap +0 -82
  92. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Modal.test.js.snap +0 -432
  93. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.ModalAgency.test.js.snap +0 -319
  94. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Payment.test.js.snap +0 -178
  95. package/build/components/BookingQuery/__tests__/__snapshots__/BookingQuery.test.js.snap +0 -1048
  96. package/build/components/ButtonFinder/__tests__/__snapshots__/ButtonFinder.test.js.snap +0 -8210
  97. package/build/components/Chat/__tests__/__snapshots__/Chat.constants.test.js.snap +0 -30
  98. package/build/components/Chat/__tests__/__snapshots__/Chat.test.js.snap +0 -634
  99. package/build/components/Chat/components/Avatar/__tests__/__snapshots__/Avatar.test.jsx.snap +0 -97
  100. package/build/components/Chat/components/Input/__tests__/__snapshots__/Input.test.jsx.snap +0 -178
  101. package/build/components/Chat/components/InputRich/__tests__/__snapshots__/InputRich.test.jsx.snap +0 -282
  102. package/build/components/Chat/components/Message/__tests__/__snapshots__/Message.test.jsx.snap +0 -211
  103. package/build/components/Chat/components/Message/components/__tests__/__snapshots__/Booking.test.js.snap +0 -65
  104. package/build/components/Chat/components/Message/components/__tests__/__snapshots__/Card.test.js.snap +0 -29
  105. package/build/components/Chat/components/Message/components/__tests__/__snapshots__/Environment.test.js.snap +0 -44
  106. package/build/components/Chat/components/Offline/__tests__/__snapshots__/Offline.test.js.snap +0 -162
  107. package/build/components/Chat/helpers/__tests__/__snapshots__/getVerboseDate.test.js.snap +0 -9
  108. package/build/components/Checkout/__tests__/__snapshots__/Checkout.test.js.snap +0 -2018
  109. package/build/components/Checkout/components/InputRadio/__tests__/__snapshots__/InputRadio.test.js.snap +0 -347
  110. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Confirmation.test.js.snap +0 -418
  111. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Form.test.js.snap +0 -6754
  112. package/build/components/Deals/__tests__/__snapshots__/Deals.Calendar.test.js.snap +0 -4449
  113. package/build/components/Deals/__tests__/__snapshots__/Deals.constants.js.snap +0 -15
  114. package/build/components/Deals/__tests__/__snapshots__/Deals.test.js.snap +0 -7828
  115. package/build/components/Deals/helpers/__tests__/__mocks__/deal.json +0 -25
  116. package/build/components/Environment/__tests__/__snapshots__/Environment.State.test.js.snap +0 -120
  117. package/build/components/Environment/__tests__/__snapshots__/Environment.test.js.snap +0 -988
  118. package/build/components/Finder/__tests__/__snapshots__/Finder.constants.test.js.snap +0 -39
  119. package/build/components/Finder/__tests__/__snapshots__/Finder.test.js.snap +0 -22237
  120. package/build/components/Finder/components/Calendar/__tests__/__mocks__/prices.json +0 -11
  121. package/build/components/Finder/components/Calendar/__tests__/__snapshots__/Calendar.test.js.snap +0 -11108
  122. package/build/components/Finder/components/Places/__tests__/__mocks__/places.json +0 -44
  123. package/build/components/Finder/components/Places/__tests__/__snapshots__/Places.test.js.snap +0 -324
  124. package/build/components/Finder/helpers/__tests__/__mocks__/dataSource.json +0 -1382
  125. package/build/components/Finder/helpers/__tests__/__snapshots__/getForwarderUrl.test.js.snap +0 -7
  126. package/build/components/Header/__tests__/__snapshots__/Header.test.js.snap +0 -1187
  127. package/build/components/Profile/components/Bookings/__tests__/__snapshots__/Bookings.test.js.snap +0 -19
  128. package/build/components/Rates/__tests__/__snapshots__/Rates.Content.test.js.snap +0 -41
  129. package/build/components/Rates/__tests__/__snapshots__/Rates.Footer.test.js.snap +0 -50
  130. package/build/components/Rates/__tests__/__snapshots__/Rates.Header.test.js.snap +0 -3
  131. package/build/components/Rates/__tests__/__snapshots__/Rates.RoomSelector.test.js.snap +0 -3
  132. package/build/components/Rates/__tests__/__snapshots__/Rates.Unavailability.test.js.snap +0 -53
  133. package/build/components/Rates/__tests__/__snapshots__/Rates.test.js.snap +0 -11760
  134. package/build/components/Rates/components/CardHotel/__tests__/__snapshots__/CardHotel.test.js.snap +0 -113
  135. package/build/components/Rates/components/Filters/__tests__/__snapshots__/FIlters.Button.test.js.snap +0 -32
  136. package/build/components/Rates/components/Filters/__tests__/__snapshots__/Filters.Amenity.test.js.snap +0 -21
  137. package/build/components/Rates/components/Filters/__tests__/__snapshots__/Filters.BookingOption.test.js.snap +0 -32
  138. package/build/components/Rates/components/Filters/__tests__/__snapshots__/Filters.test.js.snap +0 -167
  139. package/build/components/Rates/components/Hotelverse/__tests__/__snapshots__/Hotelverse.test.js.snap +0 -3
  140. package/build/components/Rates/components/Item/__tests__/__snapshots__/Item.Preview.test.js.snap +0 -96
  141. package/build/components/Rates/components/Item/__tests__/__snapshots__/Item.Rates.test.js.snap +0 -9
  142. package/build/components/Rates/components/Item/__tests__/__snapshots__/Item.Summary.test.js.snap +0 -53
  143. package/build/components/Rates/components/Item/__tests__/__snapshots__/Item.test.js.snap +0 -154
  144. package/build/components/Rates/components/Item/components/Amenities/__tests__/__snapshots__/Amenities.test.js.snap +0 -3
  145. package/build/components/Rates/components/Item/components/Countdown/__tests__/__snapshots__/Countdown.test.js.snap +0 -3
  146. package/build/components/Rates/components/Item/components/Features/__tests__/__snapshots__/Features.test.js.snap +0 -40
  147. package/build/components/Rates/components/Item/components/ModalCancellationInfo/__tests__/__snapshots__/ModalCancellationInfo.test.js.snap +0 -35
  148. package/build/components/Rates/components/Item/components/ModalInfo/__tests__/__snapshots__/ModalInfo.test.js.snap +0 -72
  149. package/build/components/Rates/components/Item/components/ModalOfferInfo/__tests__/__snapshots__/ModalOfferInfo.test.js.snap +0 -49
  150. package/build/components/Rates/components/Item/components/ModalUrl/__tests__/__snapshots__/ModalUrl.test.js.snap +0 -50
  151. package/build/components/Rates/components/Item/components/Option/__tests__/__snapshots__/Option.test.js.snap +0 -18
  152. package/build/components/Rates/components/Item/components/PriceDetails/__tests__/__snapshots__/PriceDetails.test.js.snap +0 -23
  153. package/build/components/Rates/components/Item/components/RateDetails/__tests__/__snapshots__/RateDetails.test.js.snap +0 -3
  154. package/build/components/Rates/components/Item/components/Slider/__tests__/__snapshots__/Slider.test.js.snap +0 -27
  155. package/build/components/Rates/components/Item/components/TooltipDates/__tests__/__snapshots__/TooltipDates.test.js.snap +0 -3
  156. package/build/components/Rates/components/ModalClubRate/__tests__/__snapshots__/ModalClubRate.test.js.snap +0 -257
  157. package/build/components/Rates/components/ModalExtras/__tests__/__snapshots__/ModalExtras.test.js.snap +0 -68
  158. package/build/components/Rates/components/ModalMapView/__tests__/__snapshots__/ModalMapView.test.js.snap +0 -78
  159. package/build/components/Session/__tests__/__snapshots__/Session.test.js.snap +0 -260
  160. package/build/components/Signup/__tests__/__snapshots__/Signup.test.js.snap +0 -1091
  161. package/build/components/__shared__/BookingDates/__tests__/__snapshots__/BookingDates.test.js.snap +0 -208
  162. package/build/components/__shared__/BookingDetails/__tests__/__snapshots__/BookingDetails.test.js.snap +0 -2190
  163. package/build/components/__shared__/BookingTable/__tests__/__snapshots__/BookingTable.Row.test.js.snap +0 -500
  164. package/build/components/__shared__/BookingTable/__tests__/__snapshots__/BookingTable.test.js.snap +0 -745
  165. package/build/components/__shared__/BookingTerms/__tests__/__snapshots__/BookingTerms.test.js.snap +0 -450
  166. package/build/components/__shared__/ButtonMore/__tests__/__snapshots__/ButtonMore.test.js.snap +0 -115
  167. package/build/components/__shared__/ButtonPayment/__tests__/__snapshots__/ButtonPayment.test.js.snap +0 -206
  168. package/build/components/__shared__/ButtonPayment/components/Form/__tests__/__snapshots__/Form.test.js.snap +0 -65
  169. package/build/components/__shared__/ButtonPayment/components/FormAddon/__tests__/__snapshots__/FormAddon.test.js.snap +0 -68
  170. package/build/components/__shared__/ButtonPayment/components/FormCheckout/__tests__/__snapshots__/FormCheckout.test.js.snap +0 -356
  171. package/build/components/__shared__/ButtonPayment/components/FormCheckout/helpers/__tests__/__snapshots__/getStyle.test.js.snap +0 -23
  172. package/build/components/__shared__/ButtonPayment/components/FormPaycomet/__tests__/__snapshots__/FormPaycomet.test.js.snap +0 -165
  173. package/build/components/__shared__/ButtonPayment/components/FormSipay/__tests__/__snapshots__/FormSipay.test.js.snap +0 -161
  174. package/build/components/__shared__/ButtonPayment/components/InputField/__tests__/__snapshots__/InputField.test.js.snap +0 -190
  175. package/build/components/__shared__/Card/__tests__/__snapshots__/Card.test.js.snap +0 -34
  176. package/build/components/__shared__/Countdown/__tests__/__snapshots__/Countdown.test.js.snap +0 -42
  177. package/build/components/__shared__/Field/__tests__/__snapshots__/Field.test.js.snap +0 -1018
  178. package/build/components/__shared__/FieldOccupation/__tests__/__snapshots__/FieldOccupation.test.js.snap +0 -2243
  179. package/build/components/__shared__/FieldPromocode/__tests__/__snapshots__/FieldPromocode.test.jsx.snap +0 -373
  180. package/build/components/__shared__/Footer/__tests__/__snapshots__/Footer.test.js.snap +0 -178
  181. package/build/components/__shared__/NotificationRequiredFields/__tests__/__snapshots__/NotificationRequiredFields.test.js.snap +0 -118
  182. package/build/components/__shared__/Occupation/__tests__/__mocks__/occupation.json +0 -17
  183. package/build/components/__shared__/Occupation/__tests__/__snapshots__/Occupation.test.js.snap +0 -3754
  184. package/build/components/__shared__/Payment/__tests__/__snapshots__/Payment.test.js.snap +0 -1109
  185. package/build/components/__shared__/Payment/components/AmazonPay/__tests__/__snapshots__/AmazonPay.test.js.snap +0 -23
  186. package/build/components/__shared__/Payment/components/Aplazame/__tests__/__snapshots__/Aplazame.test.js.snap +0 -33
  187. package/build/components/__shared__/Payment/components/Card/__tests__/__snapshots__/Card.test.js.snap +0 -933
  188. package/build/components/__shared__/Payment/components/PCI/__tests__/__snapshots__/PCI.test.js.snap +0 -474
  189. package/build/components/__shared__/Payment/components/Tpv/__tests__/__snapshots__/Tpv.test.js.snap +0 -98
  190. package/build/components/__shared__/PriceBreakdown/__tests__/__snapshots__/PriceBreakdown.Line.test.js.snap +0 -49
  191. package/build/components/__shared__/PriceBreakdown/__tests__/__snapshots__/PriceBreakdown.test.js.snap +0 -337
  192. package/build/components/__shared__/SelectEnvironment/__tests__/__snapshots__/SelectEnvironment.test.js.snap +0 -1192
  193. package/build/components/__shared__/Skeleton/__tests__/__snapshots__/Skeleton.test.js.snap +0 -66
  194. package/build/components/__shared__/TextRequiredFields/__tests__/__snapshots__/TextRequiredFields.test.js.snap +0 -41
  195. package/build/components/helpers/__tests__/__mocks__/hotels.json +0 -87
  196. package/build/components/helpers/__tests__/__snapshots__/parseHtml.test.js.snap +0 -317
  197. package/playwright.config.js +0 -50
  198. package/public/App.Container.jsx +0 -147
  199. package/public/App.jsx +0 -34
  200. package/public/App.module.css +0 -153
  201. package/public/index.html +0 -32
  202. package/public/index.template.html +0 -19
  203. package/public/performance/index.html +0 -159
  204. package/public/routes/Deals.jsx +0 -20
  205. package/public/routes/Finder.jsx +0 -19
  206. package/public/routes/Home.constants.js +0 -52
  207. package/public/routes/Home.jsx +0 -131
  208. package/public/routes/NotFound.jsx +0 -23
  209. package/public/routes/Profile.jsx +0 -21
  210. package/public/routes/Signup.jsx +0 -20
  211. package/public/routes/Step0-Accommodations.jsx +0 -4
  212. package/public/routes/Step1-Rates.jsx +0 -12
  213. package/public/routes/Step2-Checkout.jsx +0 -4
  214. package/public/routes/Step3-Booking.jsx +0 -4
  215. package/public/routes/components/Logo.jsx +0 -18
  216. package/public/routes/components/index.js +0 -1
  217. package/public/routes/index.js +0 -10
  218. package/public/routes/routes.module.css +0 -259
  219. package/public/themes/monalisa.theme.css +0 -45
@@ -1,9 +0,0 @@
1
- export const extras = async ({ page, empty, onlyOne }) => {
2
- await page.route('https://reservation.mirai.com/XMAS/reservation/v2/booking/extras*', (route) => {
3
- route.fulfill({
4
- status: 200,
5
- contentType: 'application/json',
6
- body: JSON.stringify(empty ? {} : require(`../__mocks__/extras${onlyOne ? '-one' : ''}-success.json`)),
7
- });
8
- });
9
- };
@@ -1,11 +0,0 @@
1
- import { expect } from '@playwright/test';
2
-
3
- export const extrasExpect = async ({ page, testId }) => {
4
- await page.waitForTimeout(500);
5
- await expect(page).toHaveScreenshot({
6
- clip: await (await page.getByTestId(`${testId}-modalExtras`)).boundingBox(),
7
- });
8
-
9
- await page.getByTestId(`${testId}-modalExtras-submit`).click();
10
- await expect(page).toHaveURL(/.*step2-checkout/, { timeout: 10000 });
11
- };
@@ -1,4 +0,0 @@
1
- export * from './extras';
2
- export * from './extrasExpect';
3
- export * from './multiroom';
4
- export * from './rates';
@@ -1,26 +0,0 @@
1
- import { expect } from '@playwright/test';
2
-
3
- import { occupation } from '../../Finder/workflows';
4
-
5
- const WAIT_URL = 'https://reservation.mirai.com/XMAS/reservation/v2/booking/rates*';
6
-
7
- export const multiroom = async ({ isMobile, page, testId }) => {
8
- await expect(await page.getByTestId(`${testId}-multiroom`)).toBeHidden();
9
-
10
- await occupation({ addRoom: true, isMobile, page, search: true, testId: `${testId}-finder` });
11
- await expect(await page.getByTestId(`${testId}-multiroom`)).toBeVisible();
12
-
13
- await page.waitForResponse(WAIT_URL);
14
- const buttons = await page.getByTestId(`${testId}-multiroom`).locator('ui-button').all();
15
- expect(buttons.length).toBe(2);
16
- expect(buttons[0]).not.toHaveAttribute('disabled');
17
- expect(buttons[1]).toHaveAttribute('disabled');
18
-
19
- await page.getByTestId(`${testId}-item-0-select`).click();
20
- await page.waitForResponse(WAIT_URL);
21
- expect(buttons[0]).not.toHaveAttribute('disabled');
22
- expect(buttons[1]).not.toHaveAttribute('disabled');
23
-
24
- await page.getByTestId(`${testId}-item-0-select`).click();
25
- await page.getByTestId(`${testId}-footer-reserve`).click();
26
- };
@@ -1,9 +0,0 @@
1
- export const rates = async ({ page }) => {
2
- await page.route('https://reservation.mirai.com/XMAS/reservation/v2/booking/rates*', (route) => {
3
- route.fulfill({
4
- status: 200,
5
- contentType: 'application/json',
6
- body: JSON.stringify(require('../__mocks__/rates-success.json')),
7
- });
8
- });
9
- };
@@ -1,18 +0,0 @@
1
- import { expect } from '@playwright/test';
2
-
3
- export const bookings = async ({ isMobile, page }) => {
4
- await page.getByTestId('show-profile-menu').click();
5
- await page.getByTestId(`profile-menu-${isMobile ? 2 : 1}`).click();
6
-
7
- await page.waitForURL(/\/profile/, { waitUntil: 'networkidle', timeout: 10000 });
8
-
9
- // Card: price details
10
- await page.getByText('Price details').first().click();
11
- await expect(page.locator('ui-tooltip-content')).toBeVisible();
12
-
13
- // Search
14
- await page.getByTestId('show-search').click();
15
- await page.fill('input[name="search"]', '19800410');
16
- await page.getByTestId('button-search').click();
17
- await expect(page.locator('ui-tooltip-content')).not.toBeVisible();
18
- };
@@ -1,20 +0,0 @@
1
- import { expect } from '@playwright/test';
2
-
3
- import { USER } from '../../constants';
4
-
5
- export const forgotPassword = async ({ page }) => {
6
- await page.getByTestId('show-login').click();
7
- await page.waitForTimeout(300);
8
-
9
- await page.getByTestId('login-action').click();
10
-
11
- await page.fill('input[name="email"]', USER.email);
12
-
13
- const [responseError] = await Promise.all([
14
- page.waitForResponse((response) => response.url().includes('/recovery') && !!response.status()),
15
- page.getByTestId('login-button').click(),
16
- ]);
17
- expect(responseError.status()).toBe(200);
18
-
19
- await page.getByTestId('login-button-secondary').click();
20
- };
@@ -1,5 +0,0 @@
1
- export * from './bookings.workflow';
2
- export * from './forgotPassword.workflow';
3
- export * from './login.workflow';
4
- export * from './logout.workflow';
5
- export * from './profile.workflow';
@@ -1,29 +0,0 @@
1
- import { expect } from '@playwright/test';
2
-
3
- import { SESSION } from '../../constants';
4
-
5
- export const login = async ({ page }) => {
6
- await page.getByTestId('show-login').click();
7
- await page.waitForTimeout(300);
8
-
9
- // Fails
10
- await page.fill('input[name="email"]', SESSION.email);
11
- expect(await page.getByTestId('login-button').getAttribute('disabled')).toBe('true');
12
- await page.fill('input[name="password"]', 'PassworD');
13
-
14
- const [responseError] = await Promise.all([
15
- page.waitForResponse((response) => response.url().includes('/login') && !!response.status()),
16
- page.getByTestId('login-button').click(),
17
- ]);
18
- expect(responseError.status()).toBe(400);
19
-
20
- // Success
21
- await page.fill('input[name="email"]', SESSION.email);
22
- await page.fill('input[name="password"]', SESSION.password);
23
-
24
- const [response] = await Promise.all([
25
- page.waitForResponse((response) => response.url().includes('/login') && !!response.status()),
26
- page.getByTestId('login-button').click(),
27
- ]);
28
- expect(response.status()).toBe(200);
29
- };
@@ -1,8 +0,0 @@
1
- import { expect } from '@playwright/test';
2
-
3
- export const logout = async ({ isMobile, page }) => {
4
- await page.getByTestId('show-profile-menu').click();
5
- await page.getByTestId(`profile-menu-${isMobile ? 3 : 2}`).click();
6
-
7
- await expect(page.getByTestId('show-login')).toBeVisible();
8
- };
@@ -1,49 +0,0 @@
1
- import { expect } from '@playwright/test';
2
-
3
- import { SESSION, USER } from '../../constants';
4
-
5
- // ! TODO: Somehow we should close the notifications
6
- // import { closeNotification } from '../../helpers';
7
-
8
- export const profile = async ({ isMobile, page }) => {
9
- await page.getByTestId('show-profile-menu').click();
10
- await page.getByTestId(`profile-menu-${isMobile ? 1 : 0}`).click();
11
-
12
- await page.waitForURL(/\/profile/, { waitUntil: 'networkidle', timeout: 10000 });
13
-
14
- // Update profile
15
- await page.fill('input[name="firstName"]', USER.firstName);
16
- await page.fill('input[name="lastName"]', USER.lastName);
17
- await page.fill('input[name="dateOfBirth"]', USER.dateOfBirth);
18
- await page.locator('input[name="subscribed"]').check();
19
-
20
- const [response] = await Promise.all([
21
- page.waitForResponse((response) => response.url().includes('/modify_member') && !!response.status()),
22
- page.getByTestId('button-save').click(),
23
- ]);
24
- expect(response.status()).toBe(200);
25
- // await closeNotification();
26
-
27
- // Move to "security" context
28
- await page.getByTestId('profile-context-2').click();
29
-
30
- // Try to change the password but user fails with the confirmation password
31
- await page.fill('input[name="password"]', SESSION.password);
32
- await page.fill('input[name="rePassword"]', 'n3wp4ssw0rD');
33
- expect(await page.getByTestId('button-password').getAttribute('disabled')).toBe('true');
34
-
35
- // User changes password
36
- await page.fill('input[name="password"]', SESSION.password);
37
- await page.fill('input[name="rePassword"]', SESSION.password);
38
- const [responsePassword] = await Promise.all([
39
- page.waitForResponse((response) => response.url().includes('/modify_member') && !!response.status()),
40
- page.getByTestId('button-password').click(),
41
- ]);
42
- expect(responsePassword.status()).toBe(200);
43
- // await closeNotification();
44
-
45
- // Try to delete account and cancel process.
46
- await page.getByTestId('button-delete-account').click();
47
- await page.waitForTimeout(300);
48
- await page.getByTestId('button-delete-close').click();
49
- };
@@ -1,2 +0,0 @@
1
- export * from './signup.workflow';
2
- export * from './signupError.workflow';
@@ -1,26 +0,0 @@
1
- import { expect } from '@playwright/test';
2
-
3
- import { USER } from '../../constants';
4
-
5
- export const signup = async ({ page }) => {
6
- await page.fill('ui-signup input[name="firstName"]', USER.firstName);
7
- await page.fill('ui-signup input[name="lastName"]', USER.lastName);
8
- await page.fill('ui-signup input[name="email"]', `${new Date().getTime()}@mail.com`);
9
- await page.fill('ui-signup input[name="dateOfBirth"]', USER.dateOfBirth);
10
- await page.locator('ui-signup select[name="country"]').selectOption('United States');
11
- await page.fill('ui-signup input[name="password"]', USER.password);
12
- await page.locator('ui-signup input[name="subscribed"]').check();
13
-
14
- // User forgot some fields
15
- await page.getByTestId('signup-button').click();
16
- await page.waitForSelector('ui-notification-error', { state: 'visible' });
17
- await page.locator('input[name="privacy"]').check();
18
-
19
- // Success
20
- const [responseError] = await Promise.all([
21
- page.waitForResponse((response) => response.url().includes('/join') && !!response.status()),
22
- page.getByTestId('signup-button').click(),
23
- ]);
24
-
25
- expect(responseError.status()).toBe(201);
26
- };
@@ -1,22 +0,0 @@
1
- import { expect } from '@playwright/test';
2
-
3
- import { USER } from '../../constants';
4
-
5
- export const signupError = async ({ page }) => {
6
- await page.fill('ui-signup input[name="firstName"]', USER.firstName);
7
- await page.fill('ui-signup input[name="lastName"]', USER.lastName);
8
- await page.fill('ui-signup input[name="email"]', USER.email);
9
- await page.fill('ui-signup input[name="dateOfBirth"]', USER.dateOfBirth);
10
- await page.locator('ui-signup select[name="country"]').selectOption('United States');
11
- await page.fill('ui-signup input[name="password"]', USER.password);
12
- await page.locator('ui-signup input[name="subscribed"]').check();
13
- await page.locator('input[name="privacy"]').check();
14
-
15
- // Success
16
- const [responseError] = await Promise.all([
17
- page.waitForResponse((response) => response.url().includes('/join') && !!response.status()),
18
- page.getByTestId('signup-button').click(),
19
- ]);
20
-
21
- expect(responseError.status()).toBe(409);
22
- };
@@ -1,34 +0,0 @@
1
- import { test } from '@playwright/test';
2
-
3
- import { PAGE_URL, URL_PARAMS } from './Booking/booking.constants';
4
- import { cancel, print, resend, review } from './Booking/workflows';
5
-
6
- test.beforeEach(async ({ context, page }) => {
7
- await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
8
-
9
- await page.route('https://reservation.mirai.com/XMAS/reservation/v2/booking/*', (route) => {
10
- route.fulfill({
11
- status: 200,
12
- contentType: 'application/json',
13
- body: JSON.stringify(require(`./Booking/__mocks__/booking-${route.request().method().toLowerCase()}.json`)),
14
- });
15
- });
16
-
17
- await page.goto(`${PAGE_URL}${URL_PARAMS.DEFAULT}`, { waitUntil: 'networkidle', timeout: 10000 });
18
- });
19
-
20
- test(`Review`, async ({ isMobile, page }) => {
21
- await review({ isMobile, page });
22
- });
23
-
24
- test(`Print`, async ({ isMobile, page }) => {
25
- await print({ isMobile, page });
26
- });
27
-
28
- test(`Resend`, async ({ isMobile, page }) => {
29
- await resend({ isMobile, page });
30
- });
31
-
32
- test(`Cancel`, async ({ isMobile, page }) => {
33
- await cancel({ isMobile, page });
34
- });
@@ -1,43 +0,0 @@
1
- import { test, expect } from '@playwright/test';
2
-
3
- import { login } from './BookingQuery/workflows';
4
-
5
- const CORRECT_ID = '23011372299';
6
- const CORRECT_PIN_CODE = '7950376';
7
- const INCORRECT_ID = '123456789';
8
- const INCORRECT_PIN_CODE = '123456';
9
-
10
- const testId = 'bookingQuery';
11
-
12
- test.beforeEach(async ({ context, page }) => {
13
- await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
14
-
15
- await page.goto('http://local.mirai.com:8080', { waitUntil: 'networkidle', timeout: 10000 });
16
- });
17
-
18
- test('incorrect id and pinCode booking', async ({ page }) => {
19
- await login({ id: INCORRECT_ID, page, pinCode: INCORRECT_PIN_CODE, testId });
20
- await expect(page.getByTestId(`${testId}-notification-error`)).toBeVisible();
21
- });
22
-
23
- test('incorrect id and correct pinCode booking', async ({ page }) => {
24
- await login({ id: INCORRECT_ID, page, pinCode: CORRECT_PIN_CODE, testId });
25
- await expect(page.getByTestId(`${testId}-notification-error`)).toBeVisible();
26
- });
27
-
28
- test('correct id and incorrect pinCode booking', async ({ page }) => {
29
- await login({ id: CORRECT_ID, page, pinCode: INCORRECT_PIN_CODE, testId });
30
- await expect(page.getByTestId(`${testId}-notification-error`)).toBeVisible();
31
- });
32
-
33
- test('correct id and correct pinCode booking', async ({ page }) => {
34
- await page.route(/.*login_reservation.json*/, (route) => {
35
- route.fulfill({
36
- status: 200,
37
- contentType: 'application/json',
38
- body: JSON.stringify(require(`./BookingQuery/__mocks__/user-booking-get.json`)),
39
- });
40
- });
41
- await login({ id: CORRECT_ID, page, pinCode: CORRECT_PIN_CODE, testId, wait: false });
42
- await expect(page).toHaveURL(/.*step3-booking*/);
43
- });
@@ -1,16 +0,0 @@
1
- import { test } from '@playwright/test';
2
-
3
- const testId = `button-finder`;
4
-
5
- test.beforeEach(async ({ context, page }) => {
6
- await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
7
-
8
- await page.goto('http://local.mirai.com:8080', { waitUntil: 'networkidle', timeout: 10000 });
9
- });
10
-
11
- test('Open & Close', async ({ page }) => {
12
- await page.getByTestId(`${testId}-button-modal`).click();
13
- await page.waitForTimeout(300);
14
- await page.getByTestId(`${testId}-modal-button-close`).click();
15
- await page.waitForTimeout(300);
16
- });
@@ -1,52 +0,0 @@
1
- import { test } from '@playwright/test';
2
-
3
- import { PAGE_URL, URL_PARAMS } from './Checkout/checkout.constants';
4
- import { form, payment, review, submit } from './Checkout/workflows';
5
-
6
- const PAYMENTS = ['PAYLATER', 'TPV', 'TRANSFER'];
7
-
8
- test.beforeEach(async ({ context }) => {
9
- await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
10
- });
11
-
12
- const enviroment = async ({ page, payment }) => {
13
- await page.route(
14
- 'https://reservation.mirai.com/XMAS/reservation/request_is_possible_prereserve_V2.json*',
15
- (route) => {
16
- route.fulfill({
17
- status: 200,
18
- contentType: 'application/json',
19
- body: JSON.stringify({ status: 'OK', message: '', data: null }),
20
- });
21
- },
22
- );
23
- await page.route(/https:\/\/reservation\.mirai\.com\/XMAS\/reservation\/v2\/booking\/checkout(\?.*)?$/, (route) => {
24
- const method = route.request().method().toLowerCase();
25
-
26
- route.fulfill({
27
- status: 200,
28
- contentType: 'application/json',
29
- body: JSON.stringify(
30
- require(`./Checkout/__mocks__/checkout-${method}${method === 'post' ? `-${payment}` : ''}.json`),
31
- ),
32
- });
33
- });
34
-
35
- await page.goto(`${PAGE_URL}${URL_PARAMS.DEFAULT}`, { waitUntil: 'networkidle', timeout: 10000 });
36
- };
37
-
38
- PAYMENTS.forEach((paymentId) => {
39
- test(`Payment w/ ${paymentId}`, async ({ page }) => {
40
- await enviroment({ page, payment: paymentId });
41
-
42
- await form({ page });
43
- await payment({ page, payment: paymentId });
44
- await submit({ page, payment: paymentId });
45
- });
46
- });
47
-
48
- test(`Review & return to previous step`, async ({ page }) => {
49
- await enviroment({ page });
50
-
51
- await review({ page });
52
- });
@@ -1,20 +0,0 @@
1
- const DEFAULT_TIMEOUT = 10000;
2
-
3
- const SESSION = {
4
- email: 'hello@soyjavi.com',
5
- password: 'BuyB1tc01N',
6
- };
7
-
8
- const USER = {
9
- firstName: 'Hal',
10
- lastName: 'Finney',
11
- dateOfBirth: '04/05/1956',
12
- phone: {
13
- prefix: '+1',
14
- number: '818-555-1234',
15
- },
16
- email: 'hal@finney.org',
17
- password: 'BuyB1tc01N',
18
- };
19
-
20
- export { DEFAULT_TIMEOUT, SESSION, USER };
@@ -1,30 +0,0 @@
1
- import { test } from '@playwright/test';
2
-
3
- import { calendar, clear, occupation, promocode, submit } from './Deals/workflows';
4
-
5
- test.beforeEach(async ({ context, page }) => {
6
- await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
7
-
8
- await page.route('https://index-deal.mirai.com/100379008/350807', (route) => {
9
- route.fulfill({
10
- status: 200,
11
- contentType: 'application/json',
12
- body: JSON.stringify(require('./Deals/__mocks__/deals-success.json')),
13
- });
14
- });
15
- await page.goto('http://local.mirai.com:8080/deals', { waitUntil: 'networkidle', timeout: 10000 });
16
- });
17
-
18
- test('Search (default)', async ({ isMobile, page }) => {
19
- await calendar({ isMobile, page });
20
- await occupation({ isMobile, page });
21
- await promocode({ isMobile, page });
22
- await submit({ isMobile, page });
23
- });
24
-
25
- test('Fulfill form & clear', async ({ isMobile, page }) => {
26
- await calendar({ isMobile, page });
27
- await occupation({ isMobile, page });
28
- await promocode({ isMobile, page });
29
- await clear({ isMobile, page });
30
- });
@@ -1,75 +0,0 @@
1
- import { expect, test } from '@playwright/test';
2
-
3
- import { calendar, occupation, promocode } from './Finder/workflows';
4
-
5
- const testId = 'finder';
6
-
7
- test.beforeEach(async ({ context, page }) => {
8
- await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
9
-
10
- await page.goto('http://local.mirai.com:8080', { waitUntil: 'networkidle', timeout: 10000 });
11
- });
12
-
13
- test('Search (default)', async ({ page }) => {
14
- await calendar({ page, testId });
15
- await page.getByTestId(`${testId}-submit`).click();
16
-
17
- await expect(page).toHaveURL(/.*step1-rates/, { timeout: 10000 });
18
- });
19
-
20
- test('Search w/ +1 adult', async ({ isMobile, page }) => {
21
- await calendar({ isMobile, page, testId });
22
- await occupation({ addAdult: true, isMobile, page, testId });
23
-
24
- await page.getByTestId(`${testId}-submit`).click();
25
-
26
- await expect(page).toHaveURL(/.*step1-rates/, { timeout: 10000 });
27
- });
28
-
29
- test('Search w/ +1 child', async ({ isMobile, page }) => {
30
- await calendar({ isMobile, page, testId });
31
- await occupation({ addChild: true, isMobile, page, testId });
32
-
33
- await page.getByTestId(`${testId}-submit`).click();
34
-
35
- await expect(page).toHaveURL(/.*step1-rates/, { timeout: 10000 });
36
- });
37
-
38
- test('Search w/ +1 child widhout age', async ({ isMobile, page }) => {
39
- await calendar({ isMobile, page, testId });
40
- await occupation({ addAgeChild: false, addChild: true, isMobile, page, testId });
41
-
42
- await page.getByTestId(`${testId}-submit`).click();
43
-
44
- if (isMobile) await expect(page.getByTestId(`${testId}-occupation-field-modal`)).toBeVisible();
45
- else await expect(page.getByTestId(`${testId}-occupation`)).toBeVisible();
46
- });
47
-
48
- test('Search w/ promocode', async ({ isMobile, page }) => {
49
- await calendar({ isMobile, page, testId });
50
- await promocode({ isMobile, page, testId });
51
-
52
- await page.getByTestId(`${testId}-submit`).click();
53
-
54
- await expect(page).toHaveURL(/.*step1-rates/, { timeout: 10000 });
55
- });
56
-
57
- test('Search w/ +1 adult & promocode', async ({ isMobile, page }) => {
58
- await calendar({ isMobile, page, testId });
59
- await occupation({ addAdult: true, isMobile, page, testId });
60
- await promocode({ isMobile, page, testId });
61
-
62
- await page.getByTestId(`${testId}-submit`).click();
63
-
64
- await expect(page).toHaveURL(/.step1-rates/, { timeout: 10000 });
65
- });
66
-
67
- test('Search w/ +1 adult, +1 room & promocode', async ({ isMobile, page }) => {
68
- await calendar({ isMobile, page, testId });
69
- await occupation({ addAdult: true, addRoom: true, isMobile, page, testId });
70
- await promocode({ isMobile, page, testId });
71
-
72
- await page.getByTestId(`${testId}-submit`).click();
73
-
74
- await expect(page).toHaveURL(/.step1-rates/, { timeout: 10000 });
75
- });
@@ -1,7 +0,0 @@
1
- export const closeNotification = async ({ page }) => {
2
- await page.waitForTimeout(300);
3
-
4
- const button = page.locator('ui-notification[class*="visible"] ui-pressable');
5
- await button.waitFor({ state: 'visible' });
6
- await button.click();
7
- };
@@ -1,8 +0,0 @@
1
- import { UTC } from '@mirai/locale';
2
-
3
- export const getWeekNumber = (date) => {
4
- const firstDayOfYear = UTC(new Date(date.getFullYear(), 0, 1));
5
- const pastDaysOfYear = (Number(date) - Number(firstDayOfYear)) / 86400000;
6
-
7
- return Math.ceil((pastDaysOfYear + firstDayOfYear.getDay()) / 7);
8
- };
@@ -1,2 +0,0 @@
1
- export * from './closeNotification';
2
- export * from './getWeekNumber';
@@ -1,39 +0,0 @@
1
- import { expect, test } from '@playwright/test';
2
-
3
- import { extras, extrasExpect, multiroom, rates } from './Rates/workflows';
4
-
5
- const testId = 'rates';
6
-
7
- test.beforeEach(async ({ context, page }) => {
8
- await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
9
- await rates({ page });
10
-
11
- await page.goto(
12
- 'http://local.mirai.com:8080/step1-rates?checkin=10/04/2025&idtokenprovider=100379008&currency=EUR&hsri=02040&lang=en&nights=2&parties=W3siYWR1bHRzIjoyLCJjaGlsZHJlbiI6W119XQ%3D%3D&&step=1',
13
- { waitUntil: 'networkidle', timeout: 10000 },
14
- );
15
- });
16
-
17
- test('Search multiroom without extras', async ({ isMobile, page }) => {
18
- await rates({ page });
19
- await extras({ empty: true, page });
20
- await multiroom({ isMobile, page, testId });
21
-
22
- await expect(page).toHaveURL(/.*step2-checkout/, { timeout: 10000 });
23
- });
24
-
25
- test('Search multiroom with some extras', async ({ isMobile, page }) => {
26
- await rates({ page });
27
- await extras({ page });
28
- await multiroom({ isMobile, page, testId });
29
-
30
- await extrasExpect({ page, testId });
31
- });
32
-
33
- test('Search multiroom with one extras', async ({ isMobile, page }) => {
34
- await rates({ page });
35
- await extras({ onlyOne: true, page });
36
- await multiroom({ isMobile, page, testId });
37
-
38
- await extrasExpect({ page, testId });
39
- });
@@ -1,32 +0,0 @@
1
- import { test } from '@playwright/test';
2
-
3
- import { bookings, forgotPassword, login, logout, profile } from './Session/workflows';
4
-
5
- test.beforeEach(async ({ context, page }) => {
6
- await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
7
-
8
- await page.goto('http://local.mirai.com:8080', { waitUntil: 'networkidle', timeout: 10000 });
9
- });
10
-
11
- test('Login', async ({ isMobile, page }) => {
12
- await login({ isMobile, page });
13
- });
14
-
15
- test('Edit profile', async ({ isMobile, page }) => {
16
- await login({ isMobile, page });
17
- await profile({ isMobile, page });
18
- });
19
-
20
- test('View bookings', async ({ isMobile, page }) => {
21
- await login({ isMobile, page });
22
- await bookings({ isMobile, page });
23
- });
24
-
25
- test('Logout', async ({ isMobile, page }) => {
26
- await login({ isMobile, page });
27
- await logout({ isMobile, page });
28
- });
29
-
30
- test('Forgot password', async ({ isMobile, page }) => {
31
- await forgotPassword({ isMobile, page });
32
- });
@@ -1,17 +0,0 @@
1
- import { test } from '@playwright/test';
2
-
3
- import { signup, signupError } from './Signup/workflows';
4
-
5
- test.beforeEach(async ({ context, page }) => {
6
- await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
7
-
8
- await page.goto('http://local.mirai.com:8080/signup', { waitUntil: 'networkidle', timeout: 10000 });
9
- });
10
-
11
- test('Signup', async ({ page }) => {
12
- await signup({ page });
13
- });
14
-
15
- test('User already exists', async ({ page }) => {
16
- await signupError({ page });
17
- });