Files
web/packages/booking-flow/lib/contexts/SelectRate/SelectRateContext/calculateNumberOfNights.test.ts
Joakim Jäderberg 9292c437f4 fix(SW-3442) getLowestRoomPrice - cannot read property of undefined
* fix: getLowestRoomPrice throws when given unexpected data
* dont track lowestRoomPrice if unavailable


Approved-by: Hrishikesh Vaipurkar
2025-10-03 13:16:25 +00:00

41 lines
1.2 KiB
TypeScript

import { describe, expect, it } from "vitest"
import { calculateNumberOfNights } from "./calculateNumberOfNights"
describe("calculateNumberOfNights", () => {
it("returns 0 when fromDate is undefined", () => {
expect(calculateNumberOfNights(undefined, "2023-01-02")).toBe(0)
})
it("returns 0 when toDate is undefined", () => {
expect(calculateNumberOfNights("2023-01-01", undefined)).toBe(0)
})
it("returns 0 for the same date (string)", () => {
expect(calculateNumberOfNights("2023-01-01", "2023-01-01")).toBe(0)
})
it("calculates nights for string date inputs", () => {
expect(calculateNumberOfNights("2023-01-01", "2023-01-05")).toBe(4)
})
it("calculates nights for Date object inputs", () => {
expect(
calculateNumberOfNights(
new Date("2023-02-10T00:00:00Z"),
new Date("2023-02-12T00:00:00Z")
)
).toBe(2)
})
it("handles mixed Date and string inputs", () => {
expect(calculateNumberOfNights(new Date("2023-03-01"), "2023-03-04")).toBe(
3
)
})
it("returns a negative number when fromDate is after toDate", () => {
expect(calculateNumberOfNights("2023-01-05", "2023-01-01")).toBe(-4)
})
})