52 lines · 2.1 KB · TypeScript
RawDownload
import { expect, test } from "@effect/vitest"; import {  getPlatformOrigin,  missingPublicOriginWarning,  resolvePublicOrigin,  shouldWarnMissingPublicOrigin,} from "./public-origin"; test("getPlatformOrigin reads host-only vars as https, trims trailing slash on URL vars", () => {  expect(getPlatformOrigin({ RAILWAY_PUBLIC_DOMAIN: "demo.up.railway.app" })).toBe(    "https://demo.up.railway.app",  );  expect(getPlatformOrigin({ RENDER_EXTERNAL_URL: "https://demo.onrender.com/" })).toBe(    "https://demo.onrender.com",  );  expect(getPlatformOrigin({ FLY_APP_NAME: "demo" })).toBe("https://demo.fly.dev");  expect(getPlatformOrigin({ SITE_NAME: "demo" })).toBe("https://demo.netlify.app");  expect(getPlatformOrigin({})).toBeUndefined();  // A Worker env (no platform vars) yields nothing — the caller falls back.  expect(getPlatformOrigin({ SOME_OTHER: "x" })).toBeUndefined();}); test("resolvePublicOrigin: explicit wins over platform, else platform, else undefined", () => {  expect(    resolvePublicOrigin({      explicit: "https://pinned.example.com",      env: { RAILWAY_PUBLIC_DOMAIN: "x" },    }),  ).toBe("https://pinned.example.com");  expect(    resolvePublicOrigin({ explicit: "  ", env: { RAILWAY_PUBLIC_DOMAIN: "demo.up.railway.app" } }),  ).toBe("https://demo.up.railway.app");  expect(resolvePublicOrigin({ explicit: undefined, env: {} })).toBeUndefined();}); test("shouldWarnMissingPublicOrigin warns unless dev/test", () => {  expect(shouldWarnMissingPublicOrigin("production")).toBe(true);  expect(shouldWarnMissingPublicOrigin("staging")).toBe(true);  expect(shouldWarnMissingPublicOrigin(undefined)).toBe(true);  expect(shouldWarnMissingPublicOrigin("development")).toBe(false);  expect(shouldWarnMissingPublicOrigin("test")).toBe(false);}); test("missingPublicOriginWarning names the var and the fallback", () => {  const msg = missingPublicOriginWarning({    varName: "EXECUTOR_WEB_BASE_URL",    fallback: "http://localhost:4788",  });  expect(msg).toContain("EXECUTOR_WEB_BASE_URL");  expect(msg).toContain("http://localhost:4788");});