mirror of
https://github.com/LukeHagar/plex-api-spec.git
synced 2025-12-09 12:37:45 +00:00
415 lines
19 KiB
TypeScript
415 lines
19 KiB
TypeScript
import {validateResponseSpec} from "../../utils/";
|
|
import {describe, it} from 'vitest'
|
|
|
|
describe('GET /library/sections', () => {
|
|
it('should validate the 200 response when the API spec is valid', () => {
|
|
const response = {
|
|
"MediaContainer": {
|
|
"size": 14,
|
|
"allowSync": false,
|
|
"title1": "Plex Library",
|
|
"Directory": [
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/movie-fanart.jpg",
|
|
"composite": "/library/sections/7/composite/1893047123",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/movie.png",
|
|
"key": "7",
|
|
"type": "movie",
|
|
"title": "Kids Movies",
|
|
"agent": "tv.plex.agents.movie",
|
|
"scanner": "Plex Movie",
|
|
"language": "en-US",
|
|
"uuid": "a1b2c3d4e5f67890",
|
|
"updatedAt": 1728394001,
|
|
"createdAt": 1598476504,
|
|
"scannedAt": 1893047123,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 4738921,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 25,
|
|
"path": "/KidsMovies"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/movie-fanart.jpg",
|
|
"composite": "/library/sections/13/composite/1893047124",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/movie.png",
|
|
"key": "13",
|
|
"type": "movie",
|
|
"title": "Kids Movies NL",
|
|
"agent": "tv.plex.agents.movie",
|
|
"scanner": "Plex Movie",
|
|
"language": "nl-NL",
|
|
"uuid": "b2c3d4e5f67890a1",
|
|
"updatedAt": 1680007500,
|
|
"createdAt": 1680007500,
|
|
"scannedAt": 1893047124,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 5283714,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 23,
|
|
"path": "/KidsMoviesNL"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/movie-fanart.jpg",
|
|
"composite": "/library/sections/1/composite/1893047130",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/movie.png",
|
|
"key": "1",
|
|
"type": "movie",
|
|
"title": "Movies",
|
|
"agent": "tv.plex.agents.movie",
|
|
"scanner": "Plex Movie",
|
|
"language": "en-US",
|
|
"uuid": "c3d4e5f67890a1b2",
|
|
"updatedAt": 1728394005,
|
|
"createdAt": 1598476200,
|
|
"scannedAt": 1893047130,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 6379184,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 18,
|
|
"path": "/Movies"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/movie-fanart.jpg",
|
|
"composite": "/library/sections/6/composite/1893047135",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/movie.png",
|
|
"key": "6",
|
|
"type": "movie",
|
|
"title": "Movies (Documentaries)",
|
|
"agent": "tv.plex.agents.movie",
|
|
"scanner": "Plex Movie",
|
|
"language": "en-US",
|
|
"uuid": "d4e5f67890a1b2c3",
|
|
"updatedAt": 1728394010,
|
|
"createdAt": 1598476302,
|
|
"scannedAt": 1893047135,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 5293874,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 29,
|
|
"path": "/Movies (Documentaries)"
|
|
},
|
|
{
|
|
"id": 15,
|
|
"path": "/Plex Library/Documentaries"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/movie-fanart.jpg",
|
|
"composite": "/library/sections/15/composite/1893047145",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/movie.png",
|
|
"key": "15",
|
|
"type": "movie",
|
|
"title": "Test Media Movies",
|
|
"agent": "tv.plex.agents.movie",
|
|
"scanner": "Plex Movie",
|
|
"language": "en-US",
|
|
"uuid": "e5f67890a1b2c3d4",
|
|
"updatedAt": 1689075000,
|
|
"createdAt": 1689075000,
|
|
"scannedAt": 1893047145,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 5182738,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 27,
|
|
"path": "/TestMedia/Movies"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/show-fanart.jpg",
|
|
"composite": "/library/sections/3/composite/1893047110",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/show.png",
|
|
"key": "3",
|
|
"type": "show",
|
|
"title": "Anime",
|
|
"agent": "com.plexapp.agents.hama",
|
|
"scanner": "Plex Series Scanner",
|
|
"language": "en",
|
|
"uuid": "f67890a1b2c3d4e5",
|
|
"updatedAt": 1684970001,
|
|
"createdAt": 1598476000,
|
|
"scannedAt": 1893047110,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 8379201,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 17,
|
|
"path": "/Anime"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/show-fanart.jpg",
|
|
"composite": "/library/sections/12/composite/1893047125",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/show.png",
|
|
"key": "12",
|
|
"type": "show",
|
|
"title": "Kids Tv Shows NL",
|
|
"agent": "tv.plex.agents.series",
|
|
"scanner": "Plex TV Series",
|
|
"language": "nl-NL",
|
|
"uuid": "67890a1b2c3d4e5f",
|
|
"updatedAt": 1728394002,
|
|
"createdAt": 1680007400,
|
|
"scannedAt": 1893047125,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 5948203,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 22,
|
|
"path": "/KidsTvShowsNL"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/show-fanart.jpg",
|
|
"composite": "/library/sections/14/composite/1893047145",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/show.png",
|
|
"key": "14",
|
|
"type": "show",
|
|
"title": "Reality TV (NL)",
|
|
"agent": "tv.plex.agents.series",
|
|
"scanner": "Plex TV Series",
|
|
"language": "nl-NL",
|
|
"uuid": "890a1b2c3d4e5f67",
|
|
"updatedAt": 1728394007,
|
|
"createdAt": 1601860600,
|
|
"scannedAt": 1893047145,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 6283720,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 26,
|
|
"path": "/Reality TV NL"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/show-fanart.jpg",
|
|
"composite": "/library/sections/2/composite/1893047150",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/show.png",
|
|
"key": "2",
|
|
"type": "show",
|
|
"title": "TV Series ",
|
|
"agent": "tv.plex.agents.series",
|
|
"scanner": "Plex TV Series",
|
|
"language": "en-US",
|
|
"uuid": "a1b2c3d4e5f67890",
|
|
"updatedAt": 1728394003,
|
|
"createdAt": 1598476100,
|
|
"scannedAt": 1893047150,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 6472184,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 32,
|
|
"path": "/TV Shows"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/show-fanart.jpg",
|
|
"composite": "/library/sections/16/composite/1893047155",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/show.png",
|
|
"key": "16",
|
|
"type": "show",
|
|
"title": "TV Shows (Documentaries)",
|
|
"agent": "tv.plex.agents.series",
|
|
"scanner": "Plex TV Series",
|
|
"language": "en-US",
|
|
"uuid": "b2c3d4e5f67890a1",
|
|
"updatedAt": 1689076000,
|
|
"createdAt": 1689076000,
|
|
"scannedAt": 1893047155,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 4920835,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 28,
|
|
"path": "/TV Shows (Documentaries)"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/show-fanart.jpg",
|
|
"composite": "/library/sections/17/composite/1893047155",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/show.png",
|
|
"key": "17",
|
|
"type": "show",
|
|
"title": "TV Shows (Kids)",
|
|
"agent": "tv.plex.agents.series",
|
|
"scanner": "Plex TV Series",
|
|
"language": "en-US",
|
|
"uuid": "c3d4e5f67890a1b2",
|
|
"updatedAt": 1689077000,
|
|
"createdAt": 1689077000,
|
|
"scannedAt": 1893047155,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 5309283,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 31,
|
|
"path": "/TV Shows (Kids)"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/show-fanart.jpg",
|
|
"composite": "/library/sections/10/composite/1893047170",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/show.png",
|
|
"key": "10",
|
|
"type": "show",
|
|
"title": "TV Shows (Reality)",
|
|
"agent": "tv.plex.agents.series",
|
|
"scanner": "Plex TV Series",
|
|
"language": "en-US",
|
|
"uuid": "d4e5f67890a1b2c3",
|
|
"updatedAt": 1689078000,
|
|
"createdAt": 1626704821,
|
|
"scannedAt": 1893047170,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 7291885,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 30,
|
|
"path": "/TV Shows (Reality)"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/artist-fanart.jpg",
|
|
"composite": "/library/sections/9/composite/1893047140",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/artist.png",
|
|
"key": "9",
|
|
"type": "artist",
|
|
"title": "Music",
|
|
"agent": "tv.plex.agents.music",
|
|
"scanner": "Plex Music",
|
|
"language": "en-US",
|
|
"uuid": "e5f67890a1b2c3d4",
|
|
"updatedAt": 1684974922,
|
|
"createdAt": 1598476740,
|
|
"scannedAt": 1893047140,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 7204063,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 24,
|
|
"path": "/Music"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allowSync": true,
|
|
"art": "/:/resources/movie-fanart.jpg",
|
|
"composite": "/library/sections/5/composite/1893047123",
|
|
"filters": true,
|
|
"refreshing": false,
|
|
"thumb": "/:/resources/video.png",
|
|
"key": "5",
|
|
"type": "movie",
|
|
"title": "Graduation",
|
|
"agent": "com.plexapp.agents.none",
|
|
"scanner": "Plex Video Files Scanner",
|
|
"language": "xn",
|
|
"uuid": "f67890a1b2c3d4e5",
|
|
"updatedAt": 1684974733,
|
|
"createdAt": 1598475949,
|
|
"scannedAt": 1893047123,
|
|
"content": true,
|
|
"directory": true,
|
|
"contentChangedAt": 3828909,
|
|
"hidden": 0,
|
|
"Location": [
|
|
{
|
|
"id": 14,
|
|
"path": "/Plex Library/Conspiracy"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
};
|
|
|
|
validateResponseSpec("/library/sections", "get", 200, response)
|
|
});
|
|
})
|