import { screen } from "@testing-library/react"; import { runInAction } from "mobx"; import Terria from "../../../../lib/Models/Terria"; import ViewState from "../../../../lib/ReactViewModels/ViewState"; import TrainerBar from "../../../../lib/ReactViews/StandardUserInterface/TrainerBar/TrainerBar"; import { renderWithContexts } from "../../withContext"; import TestHelpContent from "./test-help-content"; describe("TrainerBar", function () { let terria: Terria; let viewState: ViewState; beforeEach(function () { terria = new Terria({ baseUrl: "./" }); viewState = new ViewState({ terria: terria, catalogSearchProvider: undefined }); }); describe("with basic props", function () { it("mounts without problems", function () { const { container } = renderWithContexts(, viewState); expect(container).toBeEmptyDOMElement(); }); it("renders nothing when setTrainerBarVisible is false", function () { runInAction(() => { terria.updateParameters({ regionMappingDefinitionsUrl: "", initFragmentPaths: [], storyEnabled: false, helpContent: [TestHelpContent as any] }); viewState.setTrainerBarVisible(false); }); expect(viewState.trainerBarVisible).toEqual(false); const { container } = renderWithContexts(, viewState); expect(container).toBeEmptyDOMElement(); }); it("renders a button to toggle visibility", function () { runInAction(() => { terria.updateParameters({ regionMappingDefinitionsUrl: "", initFragmentPaths: [], storyEnabled: false, helpContent: [TestHelpContent as any] }); viewState.setTrainerBarVisible(true); }); const { container } = renderWithContexts(, viewState); expect(container.querySelectorAll("div").length).toBeTruthy(); expect(screen.getAllByRole("button").length).toBeTruthy(); }); }); });