import { isMenuVisible } from "../navigationHandler";

describe("NavigationHandler", () => {
  describe("isMenuVisible", () => {
    it("returns false when the route is a player route", () => {
      const menuVisible = isMenuVisible("/playable/some_vod_item", {});
      expect(menuVisible).toBe(false);
    });

    describe("when screen is a hook", () => {
      it("returns true if the `showNavBar` flag is set to true", () => {
        const menuVisible = isMenuVisible("", {
          hookPlugin: {
            module: {
              showNavBar: true,
            },
          },
        });

        expect(menuVisible).toBe(true);
      });

      it("returns true if presentFullScreen flag is set to false", () => {
        const menuVisible = isMenuVisible("", {
          hookPlugin: {
            module: {
              presentFullScreen: false,
            },
          },
        });

        expect(menuVisible).toBe(true);
      });

      it("returns false if presentFullScreen flag is set to true", () => {
        const menuVisible = isMenuVisible("", {
          hookPlugin: {
            module: {
              presentFullScreen: true,
            },
          },
        });

        expect(menuVisible).toBe(false);
      });
    });

    it("returns false if the screen's general settings allow screen presentation", () => {
      const menuVisible = isMenuVisible("", {
        general: {
          allow_screen_plugin_presentation: true,
        },
      });

      expect(menuVisible).toBe(false);
    });

    it("returns true otherwise", () => {
      const menuVisible = isMenuVisible("", {});
      expect(menuVisible).toBe(true);
    });
  });
});
