@crossed/ui
Version:
A universal & performant styling library for React Native, Next.js & React
49 lines (48 loc) • 2.03 kB
JavaScript
var import_jsx_runtime = require("react/jsx-runtime");
var import_test = require("@crossed/test");
var import_DayButton = require("../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", () => {
(0, import_test.render)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DayButton.DayButton, { day: mockDay, onPress: mockOnPress }));
expect(import_test.screen.getByText("15")).toBeInTheDocument();
});
test("calls onPress when clicked", () => {
(0, import_test.render)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DayButton.DayButton, { day: mockDay, onPress: mockOnPress }));
import_test.fireEvent.click(import_test.screen.getByRole("button"));
expect(mockOnPress).toHaveBeenCalled();
});
test("disables button if day is adjacent month", () => {
(0, import_test.render)(
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
import_DayButton.DayButton,
{
day: { ...mockDay, isAdjacentMonth: true },
onPress: mockOnPress
}
)
);
expect(import_test.screen.getByRole("button")).toBeDisabled();
});
test("applies correct styles when day is today", () => {
(0, import_test.render)(
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DayButton.DayButton, { day: { ...mockDay, isToday: true }, onPress: mockOnPress })
);
expect(import_test.screen.getByText("15")).toHaveStyle("borderWidth: 2");
});
test("applies correct styles when day is selected", () => {
(0, import_test.render)(
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DayButton.DayButton, { day: { ...mockDay, isSelected: true }, onPress: mockOnPress })
);
expect(import_test.screen.getByText("15")).toHaveClass(
"color-[var(--components--action-primary-default-text)]"
);
});
});
//# sourceMappingURL=DayButton.spec.js.map