2021-04-12 13:32:25 +00:00
|
|
|
import React from "react";
|
2022-03-28 18:51:10 +00:00
|
|
|
import { fireEvent, render, screen } from "@testing-library/react";
|
2016-12-01 18:57:19 +00:00
|
|
|
|
2021-04-12 13:32:25 +00:00
|
|
|
import Checkbox from "./Checkbox";
|
2016-12-01 18:57:19 +00:00
|
|
|
|
2021-04-12 13:32:25 +00:00
|
|
|
describe("Checkbox - component", () => {
|
|
|
|
|
it("renders", () => {
|
2022-03-28 18:51:10 +00:00
|
|
|
expect(render(<Checkbox />).container).not.toBeNull();
|
2016-12-01 18:57:19 +00:00
|
|
|
});
|
2016-12-21 17:25:54 +00:00
|
|
|
|
2022-03-28 18:51:10 +00:00
|
|
|
it('calls the "onChange" handler when changed', async () => {
|
2020-12-01 18:15:12 +00:00
|
|
|
const onCheckedComponentChangeSpy = jest.fn();
|
|
|
|
|
const onUncheckedComponentChangeSpy = jest.fn();
|
2016-12-21 17:25:54 +00:00
|
|
|
|
2022-03-28 18:51:10 +00:00
|
|
|
const { rerender } = render(
|
2021-04-12 13:32:25 +00:00
|
|
|
<Checkbox name="checkbox" onChange={onCheckedComponentChangeSpy} value />
|
2022-03-28 18:51:10 +00:00
|
|
|
);
|
2016-12-21 17:25:54 +00:00
|
|
|
|
2022-03-28 18:51:10 +00:00
|
|
|
fireEvent.click(screen.getByRole("checkbox"));
|
|
|
|
|
|
|
|
|
|
expect(onCheckedComponentChangeSpy).toHaveBeenCalledWith(false);
|
|
|
|
|
|
|
|
|
|
rerender(
|
2016-12-21 17:25:54 +00:00
|
|
|
<Checkbox
|
|
|
|
|
name="checkbox"
|
|
|
|
|
onChange={onUncheckedComponentChangeSpy}
|
|
|
|
|
value={false}
|
2021-04-12 13:32:25 +00:00
|
|
|
/>
|
2022-03-28 18:51:10 +00:00
|
|
|
);
|
2016-12-21 17:25:54 +00:00
|
|
|
|
2022-03-28 18:51:10 +00:00
|
|
|
fireEvent.click(screen.getByRole("checkbox"));
|
2016-12-21 17:25:54 +00:00
|
|
|
|
|
|
|
|
expect(onUncheckedComponentChangeSpy).toHaveBeenCalledWith(true);
|
|
|
|
|
});
|
2024-10-16 15:37:38 +00:00
|
|
|
|
|
|
|
|
it("renders as disabled when disabled prop is true", () => {
|
|
|
|
|
render(
|
|
|
|
|
<Checkbox name="test" value={false} disabled>
|
|
|
|
|
Test checkbox
|
|
|
|
|
</Checkbox>
|
|
|
|
|
);
|
|
|
|
|
expect(screen.getByLabelText("Test checkbox")).toBeDisabled();
|
|
|
|
|
});
|
2016-12-01 18:57:19 +00:00
|
|
|
});
|