/ opencodehub / tests / unit / site-url.test.ts
swadhinbiswas feat: OpenCodeHub v1.1.0 - Enterprise Features & Storage Adapters · 2/15/2026
719a1cb
34 lines · 1000 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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");
  });
});