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) }) })