streamion / src /tests /main_test.ts
cursorpro's picture
Upload 57 files
5ec2e9b verified
Deno.env.set("SERVER_SECRET_KEY", "aaaaaaaaaaaaaaaa");
const { run, tokenMinterReady } = await import("../main.ts");
const { parseConfig } = await import("../lib/helpers/config.ts");
const config = await parseConfig();
import { dashManifest } from "./dashManifest.ts";
import { youtubePlayer } from "./youtubePlayer.ts";
import { latestVersion } from "./latestVersion.ts";
Deno.test({
name: "Checking if Invidious companion works",
async fn(t) {
const controller = new AbortController();
const baseUrl =
`http://${config.server.host}:${config.server.port.toString()}${config.server.base_path}`;
const headers = { Authorization: "Bearer aaaaaaaaaaaaaaaa" };
await run(
controller.signal,
config.server.port,
config.server.host,
);
// Wait for tokenMinter to be ready before running tests
await tokenMinterReady;
await t.step(
"Check if it can get an OK playabilityStatus on /youtubei/v1/player",
youtubePlayer.bind(null, baseUrl, headers),
);
await t.step(
"Check if it can generate a DASH manifest",
dashManifest.bind(null, baseUrl),
);
await t.step(
"Check if it can generate a valid URL for latest_version",
latestVersion.bind(null, baseUrl),
);
await controller.abort();
},
// need to disable leaks test for now because we are leaking resources when using HTTPClient using a proxy
sanitizeResources: false,
});