import React from "react";
import { createSerializer } from "@emotion/jest";
import { fireEvent, render } from "@testing-library/react";
import { ToggleContent } from "..";
expect.addSnapshotSerializer(createSerializer());
const primary = () =>
primary
;
const secondary = () => secondary
;
describe("ToggleContent", () => {
beforeEach(() => {
const mock = jest.fn();
mock.mockReturnValue({
toString: jest.fn()
});
window.getSelection = mock;
});
it("renders a div wrapping the content passed as props", () => {
const { asFragment } = render(
);
expect(asFragment()).toMatchSnapshot();
});
it("string content", () => {
const { getByTestId } = render(
);
const toggleElement = getByTestId("toggleContent");
expect(toggleElement).toHaveTextContent("Hello");
fireEvent.click(toggleElement);
expect(toggleElement).toHaveTextContent("Bye");
});
it("component content", () => {
const { getByTestId } = render(
);
const toggleElement = getByTestId("toggleContent");
expect(toggleElement).toHaveTextContent("primary");
fireEvent.click(toggleElement);
expect(toggleElement).toHaveTextContent("secondary");
});
});