@mirai/core 0.4.36 → 0.4.38

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 (211) hide show
  1. package/build/contexts/PerformanceManager/PerformanceManager.scripts.js +1 -1
  2. package/build/contexts/PerformanceManager/PerformanceManager.scripts.js.map +1 -1
  3. package/package.json +1 -1
  4. package/.env +0 -22
  5. package/.gitlab-ci.yml +0 -4
  6. package/.nvmrc +0 -1
  7. package/__tests__/Booking/__mocks__/booking-delete.json +0 -1
  8. package/__tests__/Booking/__mocks__/booking-get.json +0 -105
  9. package/__tests__/Booking/booking.constants.js +0 -8
  10. package/__tests__/Booking/workflows/cancel.workflow.js +0 -20
  11. package/__tests__/Booking/workflows/index.js +0 -5
  12. package/__tests__/Booking/workflows/openMobileMenu.workflow.js +0 -4
  13. package/__tests__/Booking/workflows/print.workflow.js +0 -13
  14. package/__tests__/Booking/workflows/resend.workflow.js +0 -18
  15. package/__tests__/Booking/workflows/review.workflow.js +0 -17
  16. package/__tests__/BookingQuery/__mocks__/user-booking-get.json +0 -9
  17. package/__tests__/BookingQuery/workflows/index.js +0 -1
  18. package/__tests__/BookingQuery/workflows/login.workflow.js +0 -22
  19. package/__tests__/Checkout/__mocks__/checkout-get.json +0 -935
  20. package/__tests__/Checkout/__mocks__/checkout-post-PAYLATER.json +0 -10
  21. package/__tests__/Checkout/__mocks__/checkout-post-TPV.json +0 -7
  22. package/__tests__/Checkout/__mocks__/checkout-post-TRANSFER.json +0 -10
  23. package/__tests__/Checkout/checkout.constants.js +0 -8
  24. package/__tests__/Checkout/workflows/form.workflow.js +0 -17
  25. package/__tests__/Checkout/workflows/index.js +0 -4
  26. package/__tests__/Checkout/workflows/payment.workflow.js +0 -10
  27. package/__tests__/Checkout/workflows/review.workflow.js +0 -19
  28. package/__tests__/Checkout/workflows/submit.workflow.js +0 -9
  29. package/__tests__/Deals/__mocks__/deals-success.json +0 -739
  30. package/__tests__/Deals/workflows/calendar.workflow.js +0 -14
  31. package/__tests__/Deals/workflows/clear.workflow.js +0 -7
  32. package/__tests__/Deals/workflows/index.js +0 -5
  33. package/__tests__/Deals/workflows/occupation.workflow.js +0 -6
  34. package/__tests__/Deals/workflows/promocode.workflow.js +0 -3
  35. package/__tests__/Deals/workflows/submit.workflow.js +0 -6
  36. package/__tests__/Finder/workflows/calendar.workflow.js +0 -10
  37. package/__tests__/Finder/workflows/index.js +0 -3
  38. package/__tests__/Finder/workflows/occupation.workflow.js +0 -27
  39. package/__tests__/Finder/workflows/promocode.workflow.js +0 -8
  40. package/__tests__/Rates/__mocks__/extras-one-success.json +0 -138
  41. package/__tests__/Rates/__mocks__/extras-success.json +0 -397
  42. package/__tests__/Rates/__mocks__/rates-success.json +0 -731
  43. package/__tests__/Rates/workflows/extras.js +0 -9
  44. package/__tests__/Rates/workflows/extrasExpect.js +0 -11
  45. package/__tests__/Rates/workflows/index.js +0 -4
  46. package/__tests__/Rates/workflows/multiroom.js +0 -26
  47. package/__tests__/Rates/workflows/rates.js +0 -9
  48. package/__tests__/Session/workflows/bookings.workflow.js +0 -18
  49. package/__tests__/Session/workflows/forgotPassword.workflow.js +0 -20
  50. package/__tests__/Session/workflows/index.js +0 -5
  51. package/__tests__/Session/workflows/login.workflow.js +0 -29
  52. package/__tests__/Session/workflows/logout.workflow.js +0 -8
  53. package/__tests__/Session/workflows/profile.workflow.js +0 -49
  54. package/__tests__/Signup/workflows/index.js +0 -2
  55. package/__tests__/Signup/workflows/signup.workflow.js +0 -26
  56. package/__tests__/Signup/workflows/signupError.workflow.js +0 -22
  57. package/__tests__/__screenshots__/rates.spec.jsx/Desktop/Search-multiroom-with-one-extras-1.png +0 -0
  58. package/__tests__/__screenshots__/rates.spec.jsx/Desktop/Search-multiroom-with-some-extras-1.png +0 -0
  59. package/__tests__/__screenshots__/rates.spec.jsx/iPhone-12/Search-multiroom-with-one-extras-1.png +0 -0
  60. package/__tests__/__screenshots__/rates.spec.jsx/iPhone-12/Search-multiroom-with-some-extras-1.png +0 -0
  61. package/__tests__/booking.spec.jsx +0 -34
  62. package/__tests__/bookingQuey.spec.js +0 -43
  63. package/__tests__/buttonFinder.spec.js +0 -16
  64. package/__tests__/checkout.spec.jsx +0 -52
  65. package/__tests__/constants.js +0 -20
  66. package/__tests__/deals.spec.js +0 -30
  67. package/__tests__/finder.spec.js +0 -75
  68. package/__tests__/helpers/closeNotification.js +0 -7
  69. package/__tests__/helpers/getWeekNumber.js +0 -8
  70. package/__tests__/helpers/index.js +0 -2
  71. package/__tests__/rates.spec.jsx +0 -39
  72. package/__tests__/session.spec.js +0 -32
  73. package/__tests__/signup.spec.js +0 -17
  74. package/build/components/BannerLoyalty/__tests__/__snapshots__/BannerLoyalty.skeleton.test.js.snap +0 -287
  75. package/build/components/BannerLoyalty/__tests__/__snapshots__/BannerLoyalty.test.js.snap +0 -102
  76. package/build/components/Booking/__tests__/__snapshots__/Booking.test.js.snap +0 -1302
  77. package/build/components/Booking/components/Field/__tests__/__snapshots__/Field.test.js.snap +0 -139
  78. package/build/components/Booking/components/Hotelverse/__tests__/__snapshots__/Hotelverse.test.js.snap +0 -108
  79. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.FormCancel.test.js.snap +0 -546
  80. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.FormEdit.test.js.snap +0 -46
  81. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.FormResend.test.js.snap +0 -166
  82. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Information.test.js.snap +0 -110
  83. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Menu.test.js.snap +0 -82
  84. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Modal.test.js.snap +0 -432
  85. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.ModalAgency.test.js.snap +0 -319
  86. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Payment.test.js.snap +0 -178
  87. package/build/components/BookingQuery/__tests__/__snapshots__/BookingQuery.test.js.snap +0 -1048
  88. package/build/components/ButtonFinder/__tests__/__snapshots__/ButtonFinder.test.js.snap +0 -8210
  89. package/build/components/Chat/__tests__/__snapshots__/Chat.constants.test.js.snap +0 -30
  90. package/build/components/Chat/__tests__/__snapshots__/Chat.test.js.snap +0 -634
  91. package/build/components/Chat/components/Avatar/__tests__/__snapshots__/Avatar.test.jsx.snap +0 -97
  92. package/build/components/Chat/components/Input/__tests__/__snapshots__/Input.test.jsx.snap +0 -178
  93. package/build/components/Chat/components/InputRich/__tests__/__snapshots__/InputRich.test.jsx.snap +0 -282
  94. package/build/components/Chat/components/Message/__tests__/__snapshots__/Message.test.jsx.snap +0 -211
  95. package/build/components/Chat/components/Message/components/__tests__/__snapshots__/Booking.test.js.snap +0 -65
  96. package/build/components/Chat/components/Message/components/__tests__/__snapshots__/Card.test.js.snap +0 -29
  97. package/build/components/Chat/components/Message/components/__tests__/__snapshots__/Environment.test.js.snap +0 -44
  98. package/build/components/Chat/components/Offline/__tests__/__snapshots__/Offline.test.js.snap +0 -162
  99. package/build/components/Chat/helpers/__tests__/__snapshots__/getVerboseDate.test.js.snap +0 -9
  100. package/build/components/Checkout/__tests__/__snapshots__/Checkout.test.js.snap +0 -2018
  101. package/build/components/Checkout/components/InputRadio/__tests__/__snapshots__/InputRadio.test.js.snap +0 -347
  102. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Confirmation.test.js.snap +0 -418
  103. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Form.test.js.snap +0 -6754
  104. package/build/components/Deals/__tests__/__snapshots__/Deals.Calendar.test.js.snap +0 -4449
  105. package/build/components/Deals/__tests__/__snapshots__/Deals.constants.js.snap +0 -15
  106. package/build/components/Deals/__tests__/__snapshots__/Deals.test.js.snap +0 -7828
  107. package/build/components/Deals/helpers/__tests__/__mocks__/deal.json +0 -25
  108. package/build/components/Environment/__tests__/__snapshots__/Environment.State.test.js.snap +0 -120
  109. package/build/components/Environment/__tests__/__snapshots__/Environment.test.js.snap +0 -988
  110. package/build/components/Finder/__tests__/__snapshots__/Finder.constants.test.js.snap +0 -39
  111. package/build/components/Finder/__tests__/__snapshots__/Finder.test.js.snap +0 -22237
  112. package/build/components/Finder/components/Calendar/__tests__/__mocks__/prices.json +0 -11
  113. package/build/components/Finder/components/Calendar/__tests__/__snapshots__/Calendar.test.js.snap +0 -11108
  114. package/build/components/Finder/components/Places/__tests__/__mocks__/places.json +0 -44
  115. package/build/components/Finder/components/Places/__tests__/__snapshots__/Places.test.js.snap +0 -324
  116. package/build/components/Finder/helpers/__tests__/__mocks__/dataSource.json +0 -1382
  117. package/build/components/Finder/helpers/__tests__/__snapshots__/getForwarderUrl.test.js.snap +0 -7
  118. package/build/components/Header/__tests__/__snapshots__/Header.test.js.snap +0 -1187
  119. package/build/components/Profile/components/Bookings/__tests__/__snapshots__/Bookings.test.js.snap +0 -19
  120. package/build/components/Rates/__tests__/__snapshots__/Rates.Content.test.js.snap +0 -41
  121. package/build/components/Rates/__tests__/__snapshots__/Rates.Footer.test.js.snap +0 -50
  122. package/build/components/Rates/__tests__/__snapshots__/Rates.Header.test.js.snap +0 -3
  123. package/build/components/Rates/__tests__/__snapshots__/Rates.RoomSelector.test.js.snap +0 -3
  124. package/build/components/Rates/__tests__/__snapshots__/Rates.Unavailability.test.js.snap +0 -53
  125. package/build/components/Rates/__tests__/__snapshots__/Rates.test.js.snap +0 -11760
  126. package/build/components/Rates/components/CardHotel/__tests__/__snapshots__/CardHotel.test.js.snap +0 -113
  127. package/build/components/Rates/components/Filters/__tests__/__snapshots__/FIlters.Button.test.js.snap +0 -32
  128. package/build/components/Rates/components/Filters/__tests__/__snapshots__/Filters.Amenity.test.js.snap +0 -21
  129. package/build/components/Rates/components/Filters/__tests__/__snapshots__/Filters.BookingOption.test.js.snap +0 -32
  130. package/build/components/Rates/components/Filters/__tests__/__snapshots__/Filters.test.js.snap +0 -167
  131. package/build/components/Rates/components/Hotelverse/__tests__/__snapshots__/Hotelverse.test.js.snap +0 -3
  132. package/build/components/Rates/components/Item/__tests__/__snapshots__/Item.Preview.test.js.snap +0 -96
  133. package/build/components/Rates/components/Item/__tests__/__snapshots__/Item.Rates.test.js.snap +0 -9
  134. package/build/components/Rates/components/Item/__tests__/__snapshots__/Item.Summary.test.js.snap +0 -53
  135. package/build/components/Rates/components/Item/__tests__/__snapshots__/Item.test.js.snap +0 -154
  136. package/build/components/Rates/components/Item/components/Amenities/__tests__/__snapshots__/Amenities.test.js.snap +0 -3
  137. package/build/components/Rates/components/Item/components/Countdown/__tests__/__snapshots__/Countdown.test.js.snap +0 -3
  138. package/build/components/Rates/components/Item/components/Features/__tests__/__snapshots__/Features.test.js.snap +0 -40
  139. package/build/components/Rates/components/Item/components/ModalCancellationInfo/__tests__/__snapshots__/ModalCancellationInfo.test.js.snap +0 -35
  140. package/build/components/Rates/components/Item/components/ModalInfo/__tests__/__snapshots__/ModalInfo.test.js.snap +0 -72
  141. package/build/components/Rates/components/Item/components/ModalOfferInfo/__tests__/__snapshots__/ModalOfferInfo.test.js.snap +0 -49
  142. package/build/components/Rates/components/Item/components/ModalUrl/__tests__/__snapshots__/ModalUrl.test.js.snap +0 -50
  143. package/build/components/Rates/components/Item/components/Option/__tests__/__snapshots__/Option.test.js.snap +0 -18
  144. package/build/components/Rates/components/Item/components/PriceDetails/__tests__/__snapshots__/PriceDetails.test.js.snap +0 -23
  145. package/build/components/Rates/components/Item/components/RateDetails/__tests__/__snapshots__/RateDetails.test.js.snap +0 -3
  146. package/build/components/Rates/components/Item/components/Slider/__tests__/__snapshots__/Slider.test.js.snap +0 -27
  147. package/build/components/Rates/components/Item/components/TooltipDates/__tests__/__snapshots__/TooltipDates.test.js.snap +0 -3
  148. package/build/components/Rates/components/ModalClubRate/__tests__/__snapshots__/ModalClubRate.test.js.snap +0 -257
  149. package/build/components/Rates/components/ModalExtras/__tests__/__snapshots__/ModalExtras.test.js.snap +0 -68
  150. package/build/components/Rates/components/ModalMapView/__tests__/__snapshots__/ModalMapView.test.js.snap +0 -78
  151. package/build/components/Session/__tests__/__snapshots__/Session.test.js.snap +0 -260
  152. package/build/components/Signup/__tests__/__snapshots__/Signup.test.js.snap +0 -1091
  153. package/build/components/__shared__/BookingDates/__tests__/__snapshots__/BookingDates.test.js.snap +0 -208
  154. package/build/components/__shared__/BookingDetails/__tests__/__snapshots__/BookingDetails.test.js.snap +0 -2190
  155. package/build/components/__shared__/BookingTable/__tests__/__snapshots__/BookingTable.Row.test.js.snap +0 -500
  156. package/build/components/__shared__/BookingTable/__tests__/__snapshots__/BookingTable.test.js.snap +0 -745
  157. package/build/components/__shared__/BookingTerms/__tests__/__snapshots__/BookingTerms.test.js.snap +0 -450
  158. package/build/components/__shared__/ButtonMore/__tests__/__snapshots__/ButtonMore.test.js.snap +0 -115
  159. package/build/components/__shared__/ButtonPayment/__tests__/__snapshots__/ButtonPayment.test.js.snap +0 -206
  160. package/build/components/__shared__/ButtonPayment/components/Form/__tests__/__snapshots__/Form.test.js.snap +0 -65
  161. package/build/components/__shared__/ButtonPayment/components/FormAddon/__tests__/__snapshots__/FormAddon.test.js.snap +0 -68
  162. package/build/components/__shared__/ButtonPayment/components/FormCheckout/__tests__/__snapshots__/FormCheckout.test.js.snap +0 -356
  163. package/build/components/__shared__/ButtonPayment/components/FormCheckout/helpers/__tests__/__snapshots__/getStyle.test.js.snap +0 -23
  164. package/build/components/__shared__/ButtonPayment/components/FormPaycomet/__tests__/__snapshots__/FormPaycomet.test.js.snap +0 -165
  165. package/build/components/__shared__/ButtonPayment/components/FormSipay/__tests__/__snapshots__/FormSipay.test.js.snap +0 -161
  166. package/build/components/__shared__/ButtonPayment/components/InputField/__tests__/__snapshots__/InputField.test.js.snap +0 -190
  167. package/build/components/__shared__/Card/__tests__/__snapshots__/Card.test.js.snap +0 -34
  168. package/build/components/__shared__/Countdown/__tests__/__snapshots__/Countdown.test.js.snap +0 -42
  169. package/build/components/__shared__/Field/__tests__/__snapshots__/Field.test.js.snap +0 -1018
  170. package/build/components/__shared__/FieldOccupation/__tests__/__snapshots__/FieldOccupation.test.js.snap +0 -2243
  171. package/build/components/__shared__/FieldPromocode/__tests__/__snapshots__/FieldPromocode.test.jsx.snap +0 -373
  172. package/build/components/__shared__/Footer/__tests__/__snapshots__/Footer.test.js.snap +0 -178
  173. package/build/components/__shared__/NotificationRequiredFields/__tests__/__snapshots__/NotificationRequiredFields.test.js.snap +0 -118
  174. package/build/components/__shared__/Occupation/__tests__/__mocks__/occupation.json +0 -17
  175. package/build/components/__shared__/Occupation/__tests__/__snapshots__/Occupation.test.js.snap +0 -3754
  176. package/build/components/__shared__/Payment/__tests__/__snapshots__/Payment.test.js.snap +0 -1109
  177. package/build/components/__shared__/Payment/components/AmazonPay/__tests__/__snapshots__/AmazonPay.test.js.snap +0 -23
  178. package/build/components/__shared__/Payment/components/Aplazame/__tests__/__snapshots__/Aplazame.test.js.snap +0 -33
  179. package/build/components/__shared__/Payment/components/Card/__tests__/__snapshots__/Card.test.js.snap +0 -933
  180. package/build/components/__shared__/Payment/components/PCI/__tests__/__snapshots__/PCI.test.js.snap +0 -474
  181. package/build/components/__shared__/Payment/components/Tpv/__tests__/__snapshots__/Tpv.test.js.snap +0 -98
  182. package/build/components/__shared__/PriceBreakdown/__tests__/__snapshots__/PriceBreakdown.Line.test.js.snap +0 -49
  183. package/build/components/__shared__/PriceBreakdown/__tests__/__snapshots__/PriceBreakdown.test.js.snap +0 -337
  184. package/build/components/__shared__/SelectEnvironment/__tests__/__snapshots__/SelectEnvironment.test.js.snap +0 -1192
  185. package/build/components/__shared__/Skeleton/__tests__/__snapshots__/Skeleton.test.js.snap +0 -66
  186. package/build/components/__shared__/TextRequiredFields/__tests__/__snapshots__/TextRequiredFields.test.js.snap +0 -41
  187. package/build/components/helpers/__tests__/__mocks__/hotels.json +0 -87
  188. package/build/components/helpers/__tests__/__snapshots__/parseHtml.test.js.snap +0 -317
  189. package/playwright.config.js +0 -50
  190. package/public/App.Container.jsx +0 -147
  191. package/public/App.jsx +0 -34
  192. package/public/App.module.css +0 -153
  193. package/public/index.html +0 -32
  194. package/public/index.template.html +0 -19
  195. package/public/performance/index.html +0 -159
  196. package/public/routes/Deals.jsx +0 -20
  197. package/public/routes/Finder.jsx +0 -19
  198. package/public/routes/Home.constants.js +0 -52
  199. package/public/routes/Home.jsx +0 -131
  200. package/public/routes/NotFound.jsx +0 -23
  201. package/public/routes/Profile.jsx +0 -21
  202. package/public/routes/Signup.jsx +0 -20
  203. package/public/routes/Step0-Accommodations.jsx +0 -4
  204. package/public/routes/Step1-Rates.jsx +0 -12
  205. package/public/routes/Step2-Checkout.jsx +0 -4
  206. package/public/routes/Step3-Booking.jsx +0 -4
  207. package/public/routes/components/Logo.jsx +0 -18
  208. package/public/routes/components/index.js +0 -1
  209. package/public/routes/index.js +0 -10
  210. package/public/routes/routes.module.css +0 -259
  211. 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
- });