import { describe, expect, it } from "vitest"; import { getOrgSlug, getOrgDomainConfigFromHostname, getOrgFullOrigin, } from "@calcom/features/ee/organizations/lib/orgDomains"; import * as constants from "@calcom/lib/constants"; function setupEnvs({ WEBAPP_URL = "https://app.cal.com", WEBSITE_URL } = {}) { Object.defineProperty(constants, "WEBAPP_URL", { value: WEBAPP_URL }); Object.defineProperty(constants, "WEBSITE_URL", { value: WEBSITE_URL }); Object.defineProperty(constants, "ALLOWED_HOSTNAMES", { value: ["cal.com", "cal.dev", "cal-staging.com", "cal.community", "cal.local:3000", "localhost:3000"], }); Object.defineProperty(constants, "RESERVED_SUBDOMAINS", { value: [ "app", "auth", "docs", "design", "console", "go", "status", "api", "saml", "www", "matrix", "developer", "cal", "my", "team", "support", "security", "blog", "learn", "admin", ], }); } describe("Org Domains Utils", () => { describe("getOrgDomainConfigFromHostname", () => { it("should return a valid org domain", () => { setupEnvs(); expect(getOrgDomainConfigFromHostname({ hostname: "acme.cal.com" })).toEqual({ currentOrgDomain: "acme", isValidOrgDomain: true, }); }); it("should return a non valid org domain", () => { setupEnvs(); expect(getOrgDomainConfigFromHostname({ hostname: "app.cal.com" })).toEqual({ currentOrgDomain: null, isValidOrgDomain: false, }); }); it("should return a non valid org domain for localhost", () => { setupEnvs(); expect(getOrgDomainConfigFromHostname({ hostname: "localhost:3000" })).toEqual({ currentOrgDomain: null, isValidOrgDomain: false, }); }); }); describe("getOrgSlug", () => { it("should handle a prod web app url with a prod subdomain hostname", () => { setupEnvs(); expect(getOrgSlug("acme.cal.com")).toEqual("acme"); }); it("should handle a prod web app url with a staging subdomain hostname", () => { setupEnvs(); expect(getOrgSlug("acme.cal.dev")).toEqual(null); }); it("should handle a local web app with port url with a local subdomain hostname", () => { setupEnvs({ WEBAPP_URL: "http://app.cal.local:3000" }); expect(getOrgSlug("acme.cal.local:3000")).toEqual("acme"); }); it("should handle a local web app with port url with a non-local subdomain hostname", () => { setupEnvs({ WEBAPP_URL: "http://app.cal.local:3000" }); expect(getOrgSlug("acme.cal.com:3000")).toEqual(null); }); }); describe("getOrgFullOrigin", () => { it("should return the regular(non-org) origin if slug is null", () => { setupEnvs({ WEBAPP_URL: "https://app.cal.com", WEBSITE_URL: "https://abc.com", }); expect(getOrgFullOrigin(null)).toEqual("https://abc.com"); }); it("should return the org origin if slug is set", () => { setupEnvs({ WEBAPP_URL: "https://app.cal-app.com", WEBSITE_URL: "https://cal.com", }); // We are supposed to use WEBAPP_URL to derive the origin from and not WEBSITE_URL expect(getOrgFullOrigin("org")).toEqual("https://org.cal-app.com"); }); }); });