import React from "react"; import { render } from "@testing-library/react"; import "@testing-library/jest-dom/extend-expect"; import { BottomBar } from "./bottom-bar"; jest.mock("../../../extensions/registries"); import { statusBarRegistry } from "../../../extensions/registries"; describe("", () => { it("renders w/o errors", () => { const { container } = render(); expect(container).toBeInstanceOf(HTMLElement); }); it("renders w/o errors when .getItems() returns unexpected (not type complient) data", async () => { statusBarRegistry.getItems = jest.fn().mockImplementationOnce(() => undefined); expect(() => render()).not.toThrow(); statusBarRegistry.getItems = jest.fn().mockImplementationOnce(() => "hello"); expect(() => render()).not.toThrow(); statusBarRegistry.getItems = jest.fn().mockImplementationOnce(() => 6); expect(() => render()).not.toThrow(); statusBarRegistry.getItems = jest.fn().mockImplementationOnce(() => null); expect(() => render()).not.toThrow(); statusBarRegistry.getItems = jest.fn().mockImplementationOnce(() => []); expect(() => render()).not.toThrow(); statusBarRegistry.getItems = jest.fn().mockImplementationOnce(() => [{}]); expect(() => render()).not.toThrow(); statusBarRegistry.getItems = jest.fn().mockImplementationOnce(() => { return {};}); expect(() => render()).not.toThrow(); }); it("renders items [{item: React.ReactNode}] (4.0.0-rc.1)", async () => { const testId = "testId"; const text = "heee"; statusBarRegistry.getItems = jest.fn().mockImplementationOnce(() => [ { item: {text} } ]); const { getByTestId } = render(); expect(await getByTestId(testId)).toHaveTextContent(text); }); it("renders items [{item: () => React.ReactNode}] (4.0.0-rc.1+)", async () => { const testId = "testId"; const text = "heee"; statusBarRegistry.getItems = jest.fn().mockImplementationOnce(() => [ { item: () => {text} } ]); const { getByTestId } = render(); expect(await getByTestId(testId)).toHaveTextContent(text); }); });