Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
3.3 kB ยท 108 lines
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109import { expect } from "@std/expect";import { describe, test } from "@std/testing/bdd";
import { detectCdn } from "./detect-cdn";
describe("detectCdn", () => { test("cloudflare via cf-ray", () => { const result = detectCdn({ "Cf-Ray": "8c9a1b2c3d4e5f6a-FRA", Server: "cloudflare", }); expect(result.provider).toBe("cloudflare"); expect(result.evidence).toContain("cf-ray"); });
test("cloudfront via x-amz-cf-id", () => { const result = detectCdn({ "X-Amz-Cf-Id": "abc123", "X-Amz-Cf-Pop": "FRA56-P5", Via: "1.1 abc.cloudfront.net (CloudFront)", }); expect(result.provider).toBe("cloudfront"); });
test("fastly via x-served-by corroborated by x-cache", () => { const result = detectCdn({ "X-Served-By": "cache-fra-etou8220141-FRA", "X-Cache": "HIT", }); expect(result.provider).toBe("fastly"); });
test("fastly via x-fastly-request-id alone", () => { const result = detectCdn({ "X-Fastly-Request-Id": "abc123" }); expect(result.provider).toBe("fastly"); });
test("bare `x-served-by: cache-` is not fastly (generic varnish prefix)", () => { const result = detectCdn({ "X-Served-By": "cache-mia-kmia1234-MIA" }); expect(result.provider).toBeNull(); expect(result.evidence).toEqual([]); });
test("bare `x-cache` is not fastly (shared cache header)", () => { const result = detectCdn({ "X-Cache": "HIT" }); expect(result.provider).toBeNull(); expect(result.evidence).toEqual([]); });
test("akamai via x-check-cacheable", () => { const result = detectCdn({ "X-Check-Cacheable": "YES", "X-Cache": "TCP_HIT", }); expect(result.provider).toBe("akamai"); });
test("vercel via x-vercel-id", () => { const result = detectCdn({ "X-Vercel-Id": "fra1::82mqm-1724415466843-d608bd28fa1c", Server: "Vercel", }); expect(result.provider).toBe("vercel"); });
test("bunny via server header", () => { const result = detectCdn({ Server: "BunnyCDN-DE1-1042" }); expect(result.provider).toBe("bunny"); });
test("netlify via x-nf-request-id", () => { const result = detectCdn({ "X-Nf-Request-Id": "abc" }); expect(result.provider).toBe("netlify"); });
test("google cloud cdn: via corroborated by x-goog-cache-status", () => { const result = detectCdn({ Via: "1.1 google", "X-Goog-Cache-Status": "hit", }); expect(result.provider).toBe("google"); expect(result.evidence).toContain("x-goog-cache-status"); });
test("bare `via: 1.1 google` is not a CDN (load balancer / translate proxy)", () => { const result = detectCdn({ Via: "1.1 google" }); expect(result.provider).toBeNull(); expect(result.evidence).toEqual([]); });
test("outermost proxy wins when stacked (cloudflare in front of vercel)", () => { const result = detectCdn({ "Cf-Ray": "8c9a1b2c3d4e5f6a-FRA", "X-Vercel-Id": "fra1::82mqm", "X-Vercel-Cache": "HIT", }); expect(result.provider).toBe("cloudflare"); });
test("no CDN headers -> null", () => { const result = detectCdn({ "Content-Type": "text/html", Server: "nginx/1.25", }); expect(result.provider).toBeNull(); expect(result.evidence).toEqual([]); });});