import React from "react";
import { createSerializer } from "@emotion/jest";
import { render, fireEvent } from "@testing-library/react";
import { PrimaryAction, SecondaryAction } from "../stories/helpers/actions";
import { InfoBox, InfoBoxBanner, InfoBoxInline } from "../";
expect.addSnapshotSerializer(createSerializer());
const MessageComponent = (): JSX.Element => {
return message;
};
describe("InfoBox", () => {
it("renders default", () => {
const dismissFn = jest.fn();
const { asFragment } = render(
);
expect(asFragment()).toMatchSnapshot();
});
it("renders with JSX message", () => {
const dismissFn = jest.fn();
const { asFragment } = render(
} onDismiss={dismissFn} />
);
expect(asFragment()).toMatchSnapshot();
});
it("renders with actions", () => {
const dismissFn = jest.fn();
const { asFragment } = render(
}
secondaryAction={}
onDismiss={dismissFn}
/>
);
expect(asFragment()).toMatchSnapshot();
});
it("renders without dismiss button", () => {
const { asFragment } = render();
expect(asFragment()).toMatchSnapshot();
});
it("calls onDismiss when clicking dismiss node", () => {
const dismissFn = jest.fn();
const { getByRole } = render(
);
fireEvent.click(getByRole("button"));
expect(dismissFn).toHaveBeenCalled();
});
describe("InfoBoxBanner", () => {
it("renders default", () => {
const dismissFn = jest.fn();
const { asFragment } = render(
);
expect(asFragment()).toMatchSnapshot();
});
});
describe("InfoBoxInline", () => {
const dismissFn = jest.fn();
const { asFragment } = render(
);
expect(asFragment()).toMatchSnapshot();
});
});