import React from "react";
import { render, fireEvent } from "@testing-library/react";
import { createSerializer } from "@emotion/jest";
import { ToggleWrapper } from "../";
expect.addSnapshotSerializer(createSerializer());
describe("ToggleWrapper", () => {
it("renders", () => {
const { asFragment } = render(
{({ isActive }) => {`isActive? ${isActive}`}
}
);
expect(asFragment()).toMatchSnapshot();
});
it("renders as a radio input", () => {
const { asFragment } = render(
{({ isActive }) => {`isActive? ${isActive}`}
}
);
expect(asFragment()).toMatchSnapshot();
});
it("calls onFocus prop when the input gets focus", () => {
const focusFn = jest.fn();
const { getByTestId } = render(
{({ isActive }) => {`isActive? ${isActive}`}
}
);
expect(focusFn).not.toHaveBeenCalled();
fireEvent.focus(getByTestId("toggleWrapper-input"));
expect(focusFn).toHaveBeenCalled();
});
it("calls onBlur prop when the input loses focus", () => {
const blurFn = jest.fn();
const { getByTestId } = render(
{({ isActive }) => {`isActive? ${isActive}`}
}
);
expect(blurFn).not.toHaveBeenCalled();
fireEvent.focus(getByTestId("toggleWrapper-input"));
expect(blurFn).not.toHaveBeenCalled();
fireEvent.blur(getByTestId("toggleWrapper-input"));
expect(blurFn).toHaveBeenCalled();
});
});