strona-czynna/tests/sitemap.test.ts
Piotr Nowacki 7864f5c3cf Add /sitemap endpoint for generating sitemap.xml
Summary: Ref T3045

Reviewers: #testers, kuba-orlik

Reviewed By: #testers, kuba-orlik

Subscribers: kuba-orlik, jenkins-user

Maniphest Tasks: T3045

Differential Revision: https://hub.sealcode.org/D1616
2025-10-16 18:32:06 +02:00

55 lines
1.8 KiB
TypeScript

import * as assert from "node:assert";
import { test, expect } from "./backend-fixture";
test("sitemap returns expected XML for empty DB", async ({ backend, request }) => {
const response = await request.get(`${backend.url}/sitemap.xml`);
assert.strictEqual(response.status(), 200);
const actual = await response.text();
const expected = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>${backend.url}/</loc>
</url>
</urlset>
`;
assert.strictEqual(actual, expected);
});
test("sitemap returns expected XML after creating a page via UI", async ({
page,
backend,
request,
}) => {
await page.goto(backend.url);
await page.getByRole("link", { name: "Go to Admin" }).click();
await page.getByPlaceholder("text").fill("admin");
await page.getByPlaceholder("text").press("Tab");
await page.getByPlaceholder("password").fill("adminadmin");
await page.getByRole("button", { name: "Wyślij" }).click();
await page.getByRole("link", { name: "Edit Pages" }).click();
await page.getByRole("link", { name: "Create" }).click();
await page.getByLabel("url").fill("/my-page/");
await page.getByLabel("title").fill("My Page");
await page.getByLabel("heading").fill("My Heading");
await page.getByLabel("description").fill("My Description");
await page.getByRole("button", { name: "Wyślij" }).click();
const response = await request.get(`${backend.url}/sitemap.xml`);
assert.strictEqual(response.status(), 200);
const actual = await response.text();
const expected = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>${backend.url}/</loc>
</url>
<url>
<loc>${backend.url}/my-page/</loc>
</url>
</urlset>
`;
assert.strictEqual(actual, expected);
});