import { act, renderHook } from "@/test/render"; import { defaultDateLib } from "../classes/DateLib"; import type { DayPickerProps } from "../types"; import { useMulti } from "./useMulti"; describe("useMulti", () => { it("uses the selected value from props when onSelect is provided", () => { const mockOnSelect = jest.fn(); const selectedDates = [new Date(2023, 9, 1), new Date(2023, 9, 2)]; const props: DayPickerProps = { mode: "multiple", selected: selectedDates, onSelect: mockOnSelect, }; const { result } = renderHook(() => useMulti(props, defaultDateLib)); expect(result.current.selected).toBe(selectedDates); }); it("uses the internally selected value when onSelect is not provided", () => { const initialSelectedDates = [new Date(2023, 9, 1), new Date(2023, 9, 2)]; const props: DayPickerProps = { mode: "multiple", selected: initialSelectedDates, }; const { result } = renderHook(() => useMulti(props, defaultDateLib)); act(() => { result.current.select?.(new Date(2023, 9, 3), {}, {} as React.MouseEvent); }); expect(result.current.selected).toEqual([ ...initialSelectedDates, new Date(2023, 9, 3), ]); }); });