Files
metrics/tests/mocks/api/axios/get/spotify.mjs
2023-07-24 20:30:19 -04:00

152 lines
4.4 KiB
JavaScript

/**Mocked data */
export default function({faker, url, options, login = faker.internet.userName()}) {
//Spotify api
if (/^https:..api.spotify.com.*$/.test(url)) {
//Get recently played tracks
if (/me.player.recently-played/.test(url) && (options?.headers?.Authorization === "Bearer MOCKED_TOKEN_ACCESS")) {
console.debug(`metrics/compute/mocks > mocking spotify api result > ${url}`)
const artist = faker.lorem.words()
const track = faker.lorem.words(5)
return ({
status: 200,
data: {
items: [
{
track: {
album: {
album_type: "single",
artists: [
{
name: artist,
type: "artist",
},
],
images: [
{
height: 640,
url: faker.image.abstract(),
width: 640,
},
{
height: 300,
url: faker.image.abstract(),
width: 300,
},
{
height: 64,
url: faker.image.abstract(),
width: 64,
},
],
name: track,
release_date: `${faker.date.past()}`.substring(0, 10),
type: "album",
},
artists: [
{
name: artist,
type: "artist",
},
],
name: track,
preview_url: faker.internet.url(),
type: "track",
},
played_at: `${faker.date.recent()}`,
context: {
type: "album",
},
},
],
},
})
}
else if (/me.top.tracks/.test(url) && (options?.headers?.Authorization === "Bearer MOCKED_TOKEN_ACCESS")) {
console.debug(`metrics/compute/mocks > mocking spotify api result > ${url}`)
const artist = faker.lorem.words()
const track = faker.lorem.words(5)
return ({
status: 200,
data: {
items: [
{
album: {
album_type: "single",
artists: [
{
name: artist,
type: "artist",
},
],
images: [
{
height: 640,
url: faker.image.abstract(),
width: 640,
},
{
height: 300,
url: faker.image.abstract(),
width: 300,
},
{
height: 64,
url: faker.image.abstract(),
width: 64,
},
],
name: track,
release_date: `${faker.date.past()}`.substring(0, 10),
type: "album",
},
artists: [
{
name: artist,
type: "artist",
},
],
name: track,
preview_url: faker.internet.url(),
type: "track",
},
],
},
})
}
else if (/me.top.artists/.test(url) && (options?.headers?.Authorization === "Bearer MOCKED_TOKEN_ACCESS")) {
console.debug(`metrics/compute/mocks > mocking spotify api result > ${url}`)
const genre = faker.lorem.words()
const track = faker.lorem.words(5)
return ({
status: 200,
data: {
items: [
{
genres: [genre],
images: [
{
height: 640,
url: faker.image.abstract(),
width: 640,
},
{
height: 300,
url: faker.image.abstract(),
width: 300,
},
{
height: 64,
url: faker.image.abstract(),
width: 64,
},
],
name: track,
type: "artist",
},
],
},
})
}
}
}