Files
web/apps/scandic-web/components/HotelReservation/EnterDetails/Summary/_summary._test.tsx
Anton Gunnarsson 846fd904a6 Merged in feat/sw-2859-set-up-shared-trpc-package (pull request #2319)
feat(SW-2859): Create trpc package

* Add isEdge, safeTry and dataCache to new common package

* Add eslint and move prettier config

* Clean up tests

* Create trpc package and move initialization

* Move errors and a few procedures

* Move telemetry to common package

* Move tokenManager to common package

* Add Sentry to procedures

* Clean up procedures

* Fix self-referencing imports

* Add exports to packages and lint rule to prevent relative imports

* Add env to trpc package

* Add eslint to trpc package

* Apply lint rules

* Use direct imports from trpc package

* Add lint-staged config to trpc

* Move lang enum to common

* Restructure trpc package folder structure

* Fix lang imports


Approved-by: Linus Flood
2025-06-18 12:14:20 +00:00

219 lines
5.8 KiB
TypeScript

// import { describe, expect, test } from "@jest/globals"
// import { act, cleanup, render, screen, within } from "@testing-library/react"
// import { type IntlConfig, IntlProvider } from "react-intl"
// import { Lang } from "@scandic-hotels/common/constants/language"
// import {
// bedType,
// booking,
// breakfastPackage,
// guestDetailsMember,
// guestDetailsNonMember,
// roomPrice,
// roomRate,
// } from "@/__mocks__/hotelReservation"
// import { initIntl } from "@/i18n"
// import SummaryUI from "./UI"
// import type { PropsWithChildren } from "react"
// import { ChildBedMapEnum } from "@/types/components/bookingWidget/enums"
// import { StepEnum } from "@/types/enums/step"
// import type { RoomState } from "@/types/stores/enter-details"
// jest.mock("@/lib/api", () => ({
// fetchRetry: jest.fn((fn) => fn),
// }))
// function createWrapper(intlConfig: IntlConfig) {
// return function Wrapper({ children }: PropsWithChildren) {
// return (
// <IntlProvider
// messages={intlConfig.messages}
// locale={intlConfig.locale}
// defaultLocale={intlConfig.defaultLocale}
// >
// {children}
// </IntlProvider>
// )
// }
// }
// const rooms: RoomState[] = [
// {
// currentStep: StepEnum.selectBed,
// isComplete: false,
// room: {
// adults: 2,
// bedType: {
// description: bedType.queen.description,
// roomTypeCode: bedType.queen.value,
// },
// bedTypes: [],
// breakfast: breakfastPackage,
// breakfastIncluded: false,
// cancellationRule: "",
// cancellationText: "Non-refundable",
// childrenInRoom: [{ bed: ChildBedMapEnum.IN_EXTRA_BED, age: 5 }],
// guest: guestDetailsNonMember,
// rateDetails: [],
// roomFeatures: [],
// roomPrice: roomPrice,
// roomRate: roomRate,
// roomType: "Standard",
// roomTypeCode: "QS",
// isAvailable: true,
// mustBeGuaranteed: false,
// isFlexRate: false,
// specialRequest: {
// comment: "",
// },
// },
// steps: {
// [StepEnum.selectBed]: {
// step: StepEnum.selectBed,
// isValid: false,
// },
// [StepEnum.breakfast]: {
// step: StepEnum.breakfast,
// isValid: false,
// },
// [StepEnum.details]: {
// step: StepEnum.details,
// isValid: false,
// },
// },
// },
// {
// currentStep: StepEnum.selectBed,
// isComplete: false,
// room: {
// adults: 1,
// bedType: {
// description: bedType.king.description,
// roomTypeCode: bedType.king.value,
// },
// bedTypes: [],
// breakfast: undefined,
// breakfastIncluded: false,
// cancellationText: "Non-refundable",
// childrenInRoom: [],
// guest: guestDetailsMember,
// rateDetails: [],
// roomFeatures: [],
// roomPrice: roomPrice,
// roomRate: roomRate,
// roomType: "Standard",
// roomTypeCode: "QS",
// isAvailable: true,
// mustBeGuaranteed: false,
// isFlexRate: false,
// specialRequest: {
// comment: "",
// },
// },
// steps: {
// [StepEnum.selectBed]: {
// step: StepEnum.selectBed,
// isValid: false,
// },
// [StepEnum.breakfast]: {
// step: StepEnum.breakfast,
// isValid: false,
// },
// [StepEnum.details]: {
// step: StepEnum.details,
// isValid: false,
// },
// },
// },
// ]
// describe("EnterDetails Summary", () => {
// afterEach(() => {
// cleanup()
// })
// test("render with single room correctly", async () => {
// const intl = await initIntl(Lang.en)
// await act(async () => {
// render(
// <SummaryUI
// booking={booking}
// rooms={rooms.slice(0, 1)}
// isMember={false}
// totalPrice={{
// requested: {
// currency: "EUR",
// price: 133,
// },
// local: {
// currency: "SEK",
// price: 1500,
// },
// }}
// vat={12}
// toggleSummaryOpen={jest.fn()}
// />,
// {
// wrapper: createWrapper(intl),
// }
// )
// })
// screen.getByText("2 adults, 1 child")
// screen.getByText("Standard")
// screen.getByText("1,525 SEK")
// screen.getByText(bedType.queen.description)
// screen.getByText("Breakfast buffet")
// screen.getByText("1,500 SEK")
// screen.getByTestId("signup-promo-desktop")
// })
// test("render with multiple rooms correctly", async () => {
// const intl = await initIntl(Lang.en)
// await act(async () => {
// render(
// <SummaryUI
// booking={booking}
// rooms={rooms}
// isMember={false}
// totalPrice={{
// requested: {
// currency: "EUR",
// price: 133,
// },
// local: {
// currency: "SEK",
// price: 1500,
// },
// }}
// vat={12}
// toggleSummaryOpen={jest.fn()}
// />,
// {
// wrapper: createWrapper(intl),
// }
// )
// })
// const room1 = within(screen.getByTestId("summary-room-1"))
// room1.getByText("Standard")
// room1.getByText("2 adults, 1 child")
// room1.getByText(bedType.queen.description)
// room1.getByText("Breakfast buffet")
// const room2 = within(screen.getByTestId("summary-room-2"))
// room2.getByText("Standard")
// room2.getByText("1 adult")
// const room2Breakfast = room2.queryByText("Breakfast buffet")
// expect(room2Breakfast).not.toBeInTheDocument()
// room2.getByText(bedType.king.description)
// })
// })