import React from "react";
import { act, fireEvent, render } from "@testing-library/react";
import BottomView from "./BottomView";
import { ViewHideBehaviour } from "../Interfaces/View";
import { noop } from "lodash";
import "@testing-library/jest-dom";
import "jest-styled-components";
describe("BottomView", () => {
describe("ViewHideBehaviour.COLLAPSE", () => {
// HIDDEN = FALSE
it("it is visible when hidden = false", () => {
const { getByText } = render(
Hey test
,
);
expect(getByText("Hey test")).toBeTruthy();
});
it("it can be toggled when hidden = false", () => {
const onViewHideToggle = jest.fn();
const { getByRole } = render(
Hey test
,
);
const viewHideToggle = getByRole("button");
act(() => {
fireEvent.click(viewHideToggle);
});
expect(onViewHideToggle).toBeCalled();
});
it("assert container height when hidden = false", () => {
const { container } = render(
Hey test
,
);
expect(container.children[0]).toHaveAttribute("style", "height: 300px;");
});
// HIDDEN = TRUE
it("it is visible when hidden = true", () => {
const { getByText } = render(
Hey test
,
);
expect(getByText("Hey test")).toBeTruthy();
});
it("it can be toggled when hidden = true", () => {
const onViewHideToggle = jest.fn();
const { getByRole } = render(
Hey test
,
);
const viewHideToggle = getByRole("button");
act(() => {
fireEvent.click(viewHideToggle);
});
expect(onViewHideToggle).toBeCalled();
});
it("assert container height when hidden = true", () => {
const { container } = render(
Hey test
,
);
expect(container.children[0]).toHaveAttribute("style", "height: 38px;");
});
});
describe("ViewHideBehaviour.CLOSE", () => {
// HIDDEN = FALSE
it("it is visible when hidden = false", () => {
const { getByText } = render(
Hey test
,
);
expect(getByText("Hey test")).toBeTruthy();
});
it("it can be toggled when hidden = false", () => {
const onViewHideToggle = jest.fn();
const { getByRole } = render(
Hey test
,
);
const viewHideToggle = getByRole("button");
act(() => {
fireEvent.click(viewHideToggle);
});
expect(onViewHideToggle).toBeCalled();
});
it("assert container height when hidden = false", () => {
const { container } = render(
Hey test
,
);
expect(container.children[0]).toHaveAttribute("style", "height: 300px;");
});
// HIDDEN = TRUE
it("it is visible when hidden = true", () => {
const { getByText } = render(
Hey test
,
);
expect(getByText("Hey test")).toBeTruthy();
});
it("it can be toggled when hidden = true", () => {
const onViewHideToggle = jest.fn();
const { getByRole } = render(
Hey test
,
);
const viewHideToggle = getByRole("button");
act(() => {
fireEvent.click(viewHideToggle);
});
expect(onViewHideToggle).toBeCalled();
});
it("assert container height when hidden = true", () => {
const { container } = render(
Hey test
,
);
expect(container.children[0]).toHaveAttribute("style", "height: 0px;");
});
});
});