42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { describe, expect, mock, test } from "bun:test";
|
|
import { createSitemap } from "./sitemap-handler";
|
|
|
|
describe("sitemap", () => {
|
|
test("includes static and database-backed tier-list pages", async () => {
|
|
const date = new Date("2026-08-30T00:00:00Z");
|
|
const getTierLists = mock(async () => [
|
|
{ type: "genshin", version: "5.0" },
|
|
{ type: "hsr", version: "3.2" },
|
|
]);
|
|
const result = await createSitemap({
|
|
base: "https://buzz.test",
|
|
getTierLists,
|
|
now: () => date,
|
|
})();
|
|
expect(result.map(({ url }) => url)).toEqual([
|
|
"https://buzz.test/",
|
|
"https://buzz.test/guide",
|
|
"https://buzz.test/artifact",
|
|
"https://buzz.test/rubgram",
|
|
"https://buzz.test/tl",
|
|
"https://buzz.test/tl/genshin/5.0",
|
|
"https://buzz.test/tl/hsr/3.2",
|
|
]);
|
|
expect(
|
|
result.every(({ lastModified }) => lastModified === date),
|
|
).toBeTrue();
|
|
expect(result.at(-1)).toMatchObject({
|
|
changeFrequency: "monthly",
|
|
priority: 0.5,
|
|
});
|
|
});
|
|
|
|
test("handles no dynamic tier lists", async () => {
|
|
const result = await createSitemap({
|
|
base: "https://buzz.test",
|
|
getTierLists: async () => [],
|
|
})();
|
|
expect(result).toHaveLength(5);
|
|
});
|
|
});
|