Files
aniplay-api/src/controllers/episodes/getEpisodeUrl/index.spec.ts
2024-09-26 01:35:36 -04:00

131 lines
3.5 KiB
TypeScript

import { describe, expect, it } from "bun:test";
import app from "~/index";
import { server } from "~/mocks";
server.listen();
describe('requests the "/episodes/:id/url" route', () => {
it("with sources from Anify", async () => {
const response = await app.request(
"/episodes/1/url",
{
method: "POST",
body: JSON.stringify({
provider: "anify",
id: "/ore-dake-level-up-na-ken-episode-2",
}),
headers: { "Content-Type": "application/json" },
},
{
ENABLE_ANIFY: "true",
},
);
expect(response.json()).resolves.toEqual({
success: true,
result: {
source:
"https://proxy.anify.tv/video/8CLGIJg8G3k%252BH%252BYV9xyOYVGZ8al8uZqqtbXk44wKRco%252BGATkCrqlkgdRiam3owmOU4f2MAB89GOblOuZbxifwbGsjvp32uxhRC4kZVYrWnZmP%252FrLxtqwi0n6zY%252BvrffUh6dbg6DADSLCWhd2bNUUIg%253D%253D/%7B%7D/.m3u8",
subtitles: [],
audio: [],
},
});
});
it("with no URL from Anify source", async () => {
const response = await app.request("/episodes/-1/url", {
method: "POST",
body: JSON.stringify({
provider: "anify",
id: "/ore-dake-level-up-na-ken-episode-2",
}),
headers: { "Content-Type": "application/json" },
});
expect(response.json()).resolves.toEqual({ success: false });
expect(response.status).toBe(404);
});
it("with sources from Consumet", async () => {
const response = await app.request(
"/episodes/1/url",
{
method: "POST",
body: JSON.stringify({
provider: "consumet",
id: "/ore-dake-level-up-na-ken-episode-2",
}),
headers: { "Content-Type": "application/json" },
},
{
ENABLE_ANIFY: "true",
},
);
expect(response.json()).resolves.toEqual({
success: true,
result: {
source: "https://consumet.com",
subtitles: [],
audio: [],
},
});
});
it("with no URL from Consumet source", async () => {
const response = await app.request("/episodes/-1/url", {
method: "POST",
body: JSON.stringify({
provider: "consumet",
id: "unknown",
}),
headers: { "Content-Type": "application/json" },
});
expect(response.json()).resolves.toEqual({ success: false });
expect(response.status).toBe(404);
});
// it("with sources from Aniwatch", async () => {
// const response = await app.request(
// "/episodes/1/url",
// {
// method: "POST",
// body: JSON.stringify({
// provider: "aniwatch",
// id: "ore-dake-level-up-na-ken-episode-2",
// }),
// headers: { "Content-Type": "application/json" },
// },
// {
// ENABLE_ANIFY: "true",
// },
// );
// expect(response.json()).resolves.toEqual({
// success: true,
// result: {
// source:
// "https://www032.vipanicdn.net/streamhls/aa804a2400535d84dd59454b28d329fb/ep.1.1712504065.m3u8",
// subtitles: [],
// audio: [],
// },
// });
// });
// it("with no URL from Aniwatch source", async () => {
// const response = await app.request("/episodes/-1/url", {
// method: "POST",
// body: JSON.stringify({
// provider: "aniwatch",
// id: "unknown",
// }),
// headers: { "Content-Type": "application/json" },
// });
// expect(response.json()).resolves.toEqual({ success: false });
// expect(response.status).toBe(404);
// });
});