Skip to content
File

Blob: tests/worker/helpers/sites.ts

typescript31 lines
1import { expect } from "vitest";
2 
3import { handlePageProjection } from "@/worker/queues/page-projection";
4 
5function expectSitesPreloadLinks(response: Response, expectsScripts: boolean): void {
6 const link = response.headers.get("Link") ?? "";
7 expect(link).toContain("</site-assets/sites-test.css>; rel=preload; as=style");
8 expect(link).toContain("</site-assets/fonts-test.css>; rel=preload; as=style");
9 
10 if (expectsScripts) {
11 expect(link).toContain("</site-assets/sites-entry-test.js>; rel=preload; as=script");
12 expect(link).toContain("</site-assets/outline-model-test.js>; rel=preload; as=script");
13 } else {
14 expect(link).not.toContain("</site-assets/sites-entry-test.js>; rel=preload; as=script");
15 expect(link).not.toContain("</site-assets/outline-model-test.js>; rel=preload; as=script");
16 }
17}
18 
19export function expectSitesStaticDocumentPreloadLinks(response: Response): void {
20 expectSitesPreloadLinks(response, false);
21}
22 
23export function expectSitesPageDocumentPreloadLinks(response: Response): void {
24 expectSitesPreloadLinks(response, true);
25}
26 
27export async function projectSitePage(env: Env, pageId: string): Promise<void> {
28 const result = await handlePageProjection(pageId, env);
29 expect(result).toEqual({ kind: "ok" });
30}