import "should";
import * as deezer from "../../lib/services/deezer/index.js";

describe("Deezer", () => {
  describe("lookupId", () => {
    it("should find album by ID", async function test() {
      const result = await deezer.lookupId("302127", "album");
      result.name.should.equal("Discovery");
    });

    it("should find track by ID", async function() {
      const result = await deezer.lookupId("3135554", "track");
      result.name.should.equal("Aerodynamic");
    });
  });

  describe("search", () => {
    it("should find album by search", async function() {
      const result = await deezer.search({
        type: "album",
        artist: { name: "Jamie xx" },
        name: "In Colour"
      });
      result.name.should.startWith("In Colour");
    });

    it("should find album with various artists by search", async function() {
      const result = await deezer.search({
        type: "album",
        artist: { name: "Various Artists" },
        name: "Rocket League x Monstercat Vol. 6"
      });
      result.name.should.equal("Rocket League x Monstercat Vol. 6");
    });

    it("should find track by search", async function() {
      const result = await deezer.search({
        type: "track",
        artist: { name: "Deftones" },
        albumName: "Deftones",
        name: "Hexagram"
      });
      result.name.should.equal("Hexagram");
    });
  });

  describe("lookupUrl", () => {
    describe("parseUrl", () => {
      it("should parse album url into ID", async function() {
        const result = await deezer.parseUrl(
          "http://www.deezer.com/album/302127"
        );
        result.id.should.equal(302127);
      });

      it("should parse track url into ID", async function() {
        const result = await deezer.parseUrl(
          "http://www.deezer.com/track/3135554"
        );
        result.id.should.equal(3135554);
      });
    });
  });
});