combine.fm/test/services/spotify.js
Jonathan Cremin 4dfd6e93b2
All checks were successful
ci / build-image (push) Successful in 59s
ci / test-image (push) Successful in 8s
Add tests to action
2025-06-12 21:21:33 +01:00

63 lines
1.9 KiB
JavaScript

import "should";
import * as spotify from "../../lib/services/spotify/index.js";
describe("Spotify", function() {
describe("init", function() {
it("should have secrets", async function() {
process.env.SPOTIFY_CLIENT_ID.should.exist;
});
});
describe("lookupId", function() {
it("should find album by ID", async function() {
const result = await spotify.lookupId("77UW17CZFyCaRLHdHeofZu", "album");
result.name.should.equal("Listen");
});
it("should find track by ID", async function() {
const result = await spotify.lookupId("7dS5EaCoMnN7DzlpT6aRn2", "track");
result.name.should.equal("Take Me To Church");
});
});
describe("search", function() {
it("should find album by search", async function() {
const result = await spotify.search({
type: "album",
artist: { name: "David Guetta" },
name: "Listen (Deluxe)"
});
result.name.should.equal("Listen (Deluxe)");
});
it("should find br album by search", async function() {
const result = await spotify.search({
type: "album",
artist: { name: "Anavitória" },
name: "Fica"
});
result.name.should.equal("Fica");
});
it("should find album by various artists by search", async function() {
const result = await spotify.search({
type: "album",
artist: { name: "Various Artists" },
name:
"The Get Down Part II: Original Soundtrack From The Netflix Original Series"
});
result.name.should.equal(
"The Get Down Part II: Original Soundtrack From The Netflix Original Series"
);
});
});
describe("parseUrl", function() {
it("should parse url into ID", async function() {
const result = await spotify.parseUrl(
"https://play.spotify.com/album/77UW17CZFyCaRLHdHeofZu"
);
result.id.should.equal("77UW17CZFyCaRLHdHeofZu");
});
});
});