131 lines
3.5 KiB
TypeScript
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);
|
|
// });
|
|
});
|