import { render, screen } from "@testing-library/react";
import Terria from "../../../lib/Models/Terria";
import ViewState from "../../../lib/ReactViewModels/ViewState";
import { runInAction } from "mobx";
import MapDataCount from "../../../lib/ReactViews/BottomDock/MapDataCount";
import SimpleCatalogItem from "../../Helpers/SimpleCatalogItem";
describe("MapDataCount", function () {
let terria: Terria;
let viewState: ViewState;
beforeEach(function () {
terria = new Terria({
baseUrl: "./"
});
viewState = new ViewState({
terria: terria,
catalogSearchProvider: undefined
});
});
it("renders noMapDataEnabled when no data on map", function () {
expect(viewState.useSmallScreenInterface).toEqual(false);
render();
expect(screen.getByText("countDatasets.noMapDataEnabled")).toBeVisible();
});
it("renders count of datasets on map", async function () {
const simple1 = new SimpleCatalogItem("simple1", terria);
terria.addModel(simple1);
await terria.workbench.add(simple1);
render();
expect(screen.getByText("countDatasets.mapDataState")).toBeVisible();
});
it("doesn't render anything when in mobile UI via useSmallScreenInterface", function () {
runInAction(() => (viewState.useSmallScreenInterface = true));
expect(viewState.useSmallScreenInterface).toEqual(true);
render();
expect(
screen.queryByText("countDatasets.noMapDataEnabled")
).not.toBeInTheDocument();
});
});