-
Notifications
You must be signed in to change notification settings - Fork 0
/
sites_test.ts
51 lines (46 loc) · 1.4 KB
/
sites_test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import { assertEquals } from "@std/assert";
import { transcodeXmlUrl } from "../../src/libs/sites.ts";
import type { Feed } from "@5ouma/opml-generator/types";
Deno.test("Get XML URL", async (t: Deno.TestContext) => {
await t.step("site", () => {
const feed: Feed = {
title: "feed title",
type: "bluesky",
id: "username",
};
assertEquals(
transcodeXmlUrl(feed.title, feed.type, feed.id),
new URL("https://bsky.app/profile/username/rss"),
);
});
await t.step("type not set", () => {
const feed: Feed = { title: "feed title", id: "username" };
try {
transcodeXmlUrl(feed.title, undefined, feed.id);
} catch (error) {
assertEquals(
error.message,
`parameter not set: "type" of "${feed.title}"`,
);
}
});
await t.step("id not set", () => {
const feed: Feed = { title: "feed title", type: "bluesky" };
try {
transcodeXmlUrl(feed.title, feed.type, undefined);
} catch (error) {
assertEquals(error.message, `parameter not set: "id" of "${feed.title}"`);
}
});
await t.step("site not found", () => {
const feed: Feed = { title: "feed title", type: "unknown", id: "username" };
try {
transcodeXmlUrl(feed.title, feed.type, feed.id);
} catch (error) {
assertEquals(
error.message,
`site not found: "${feed.type}" of "${feed.title}"`,
);
}
});
});