UNPKG

@crossed/ui

Version:

A universal & performant styling library for React Native, Next.js & React

49 lines (48 loc) 1.66 kB
import { jsx } from "react/jsx-runtime"; import { render, fireEvent, screen } from "@crossed/test"; import { DayButton } from "../DayButton"; describe("DayButton", () => { const mockDay = { date: new Date(2025, 1, 15), isToday: false, isSelected: false, isAdjacentMonth: false }; const mockOnPress = jest.fn(); test("renders correctly with given day", () => { render(/* @__PURE__ */ jsx(DayButton, { day: mockDay, onPress: mockOnPress })); expect(screen.getByText("15")).toBeInTheDocument(); }); test("calls onPress when clicked", () => { render(/* @__PURE__ */ jsx(DayButton, { day: mockDay, onPress: mockOnPress })); fireEvent.click(screen.getByRole("button")); expect(mockOnPress).toHaveBeenCalled(); }); test("disables button if day is adjacent month", () => { render( /* @__PURE__ */ jsx( DayButton, { day: { ...mockDay, isAdjacentMonth: true }, onPress: mockOnPress } ) ); expect(screen.getByRole("button")).toBeDisabled(); }); test("applies correct styles when day is today", () => { render( /* @__PURE__ */ jsx(DayButton, { day: { ...mockDay, isToday: true }, onPress: mockOnPress }) ); expect(screen.getByText("15")).toHaveStyle("borderWidth: 2"); }); test("applies correct styles when day is selected", () => { render( /* @__PURE__ */ jsx(DayButton, { day: { ...mockDay, isSelected: true }, onPress: mockOnPress }) ); expect(screen.getByText("15")).toHaveClass( "color-[var(--components--action-primary-default-text)]" ); }); }); //# sourceMappingURL=DayButton.spec.js.map