import { afterEach, describe, expect, it } from "vitest";
import { getSiteUrl } from "@/lib/site-url";
const originalSiteUrl = process.env.SITE_URL;
const originalNodeEnv = process.env.NODE_ENV;
afterEach(() => {
process.env.SITE_URL = originalSiteUrl;
process.env.NODE_ENV = originalNodeEnv;
});
describe("site-url", () => {
it("returns configured SITE_URL", () => {
process.env.SITE_URL = "https://example.com/";
process.env.NODE_ENV = "production";
expect(getSiteUrl()).toBe("https://example.com");
});
it("fails closed in production when SITE_URL is missing", () => {
delete process.env.SITE_URL;
process.env.NODE_ENV = "production";
expect(() => getSiteUrl()).toThrowError(
"SITE_URL environment variable is required in production"
);
});
it("uses localhost fallback only in non-production", () => {
delete process.env.SITE_URL;
process.env.NODE_ENV = "development";
expect(getSiteUrl()).toBe("http://localhost:4321");
});
});