import { extractAsset } from "..";

describe("extractAsset", () => {
  describe("mobile", () => {
    const isMobile = true;

    it("return asset if asset is a string", () => {
      const asset = "asset";
      const uriState = "";

      const result = extractAsset(isMobile, asset, uriState);

      expect(result).toEqual({
        uri: "asset",
      });
    });

    it("return asset if asset is a object", () => {
      const asset = {
        test: "asset",
      };

      const uriState = "test";

      const result = extractAsset(isMobile, asset, uriState);

      expect(result).toEqual({
        uri: "asset",
      });
    });

    it("return asset if asset is an array", () => {
      const asset = ["asset_1", "asset_2"];
      const uriState = "focused";

      const result = extractAsset(isMobile, asset, uriState);

      expect(result).toEqual({
        uri: "asset_1",
      });
    });
  });

  describe("tv", () => {
    const isMobile = false;

    it("return asset if asset is a string", () => {
      const asset = "asset";
      const uriState = "";

      const result = extractAsset(isMobile, asset, uriState);

      expect(result).toEqual({
        uri: "asset",
      });
    });

    it("return asset if asset is a object", () => {
      const asset = {
        test: "asset",
      };

      const uriState = "test";

      const result = extractAsset(isMobile, asset, uriState);

      expect(result).toEqual({
        uri: "asset",
      });
    });

    it("return asset if asset is an array", () => {
      const asset = ["default_asset", "focus_asset"];
      const uriState = "focused";

      const result = extractAsset(isMobile, asset, uriState);

      expect(result).toEqual({
        uri: "focus_asset",
      });
    });

    it("return asset if asset is an array", () => {
      const asset = ["default_asset", "focus_asset"];
      const uriState = "default";

      const result = extractAsset(isMobile, asset, uriState);

      expect(result).toEqual({
        uri: "default_asset",
      });
    });
  });
});
