test/scripts/static-cdn-fixtures.ts
Rama main · réplica de lectura del repositorio original.
import type { StaticCdnAsset, StaticCdnConfig } from "#scripts/static-cdn.ts";
export const CONFIG = {
accountKey: "account-secret",
cdnUrl: "https://assets.example.com/static",
pullZoneId: "12345",
storageHost: "storage.bunnycdn.com",
storageKey: "storage-secret",
storageName: "tickets-assets",
} satisfies StaticCdnConfig;
export const ENV = {
BUNNY_ACCESS_KEY: "account-secret",
CDN_BUNNY_PULL_ZONE_ID: "12345",
CDN_BUNNY_STORAGE_HOST: "storage.bunnycdn.com",
CDN_BUNNY_STORAGE_ZONE_KEY: "storage-secret",
CDN_BUNNY_STORAGE_ZONE_NAME: "tickets-assets",
CDN_URL: "https://assets.example.com/static/",
};
export const STYLE_ASSET = {
bytes: new TextEncoder().encode("body{}"),
contentType: "text/css; charset=utf-8",
filename: "style.css",
} satisfies StaticCdnAsset;
export const WASM_ASSET = {
bytes: new Uint8Array([0, 97, 115, 109]),
contentType: "application/wasm",
filename: "jpegDec.wasm",
} satisfies StaticCdnAsset;
export const assetResponse = (asset: StaticCdnAsset): Response =>
new Response(Uint8Array.from(asset.bytes).buffer, {
headers: { "content-type": asset.contentType },
});
export const successfulFetcher =
(assetForUrl: (url: string) => StaticCdnAsset): typeof fetch =>
(input, init) => {
const method = init?.method ?? "GET";
if (method !== "GET") {
return Promise.resolve(new Response(null, { status: 201 }));
}
const url = String(input);
return Promise.resolve(assetResponse(assetForUrl(url)));
};
export const verificationFetcher =
(publicResponse: Response): typeof fetch =>
(_input, init) =>
Promise.resolve(
init?.method === "PUT"
? new Response(null, { status: 201 })
: init?.method === "POST"
? new Response(null, { status: 204 })
: publicResponse,
);