26 lines
1.0 KiB
TypeScript
26 lines
1.0 KiB
TypeScript
import { assertEquals } from "jsr:@std/assert";
|
|
import { getLatestVideos } from "lib/net/getLatestVideos.ts";
|
|
|
|
Deno.test("Get latest videos", async () => {
|
|
const videos = (await getLatestVideos(1, 5))!;
|
|
assertEquals(videos.length, 5);
|
|
|
|
videos.forEach((video) => {
|
|
assertVideoProperties(video);
|
|
});
|
|
});
|
|
|
|
function assertVideoProperties(video: object) {
|
|
const aid = "aid" in video && typeof video.aid === "number";
|
|
const bvid = "bvid" in video && typeof video.bvid === "string" &&
|
|
video.bvid.length === 12 && video.bvid.startsWith("BV");
|
|
const description = "description" in video && typeof video.description === "string";
|
|
const uid = "uid" in video && typeof video.uid === "number";
|
|
const tags = "tags" in video && (typeof video.tags === "string" || video.tags === null);
|
|
const title = "title" in video && typeof video.title === "string";
|
|
const publishedAt = "published_at" in video && typeof video.published_at === "string";
|
|
|
|
const match = aid && bvid && description && uid && tags && title && publishedAt;
|
|
assertEquals(match, true);
|
|
}
|