fleet/frontend/components/forms/fields/Checkbox/Checkbox.tests.tsx

45 lines
1.2 KiB
TypeScript
Raw Normal View History

import React from "react";
import { fireEvent, render, screen } from "@testing-library/react";
2016-12-01 18:57:19 +00:00
import Checkbox from "./Checkbox";
2016-12-01 18:57:19 +00:00
describe("Checkbox - component", () => {
it("renders", () => {
expect(render(<Checkbox />).container).not.toBeNull();
2016-12-01 18:57:19 +00:00
});
it('calls the "onChange" handler when changed', async () => {
const onCheckedComponentChangeSpy = jest.fn();
const onUncheckedComponentChangeSpy = jest.fn();
const { rerender } = render(
<Checkbox name="checkbox" onChange={onCheckedComponentChangeSpy} value />
);
fireEvent.click(screen.getByRole("checkbox"));
expect(onCheckedComponentChangeSpy).toHaveBeenCalledWith(false);
rerender(
<Checkbox
name="checkbox"
onChange={onUncheckedComponentChangeSpy}
value={false}
/>
);
fireEvent.click(screen.getByRole("checkbox"));
expect(onUncheckedComponentChangeSpy).toHaveBeenCalledWith(true);
});
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
});