import { afterEach, describe, expect, it, vi } from "vite-plus/test"; import { CloudPublicConfigMissingError, hasCloudPublicConfig, resolveRelayClerkTokenOptions,} from "./publicConfig.ts"; afterEach(() => { vi.unstubAllEnvs();}); describe("hasCloudPublicConfig", () => { it("requires both public cloud values", () => { vi.stubEnv("VITE_CLERK_PUBLISHABLE_KEY", ""); vi.stubEnv("VITE_CLERK_JWT_TEMPLATE", ""); vi.stubEnv("VITE_T3CODE_RELAY_URL", ""); expect(hasCloudPublicConfig()).toBe(false); vi.stubEnv("VITE_CLERK_PUBLISHABLE_KEY", "pk_test_example"); expect(hasCloudPublicConfig()).toBe(false); vi.stubEnv("VITE_CLERK_JWT_TEMPLATE", "t3-relay"); expect(hasCloudPublicConfig()).toBe(false); vi.stubEnv("VITE_T3CODE_RELAY_URL", "https://relay.example.test"); expect(hasCloudPublicConfig()).toBe(true); }); it("rejects an insecure relay URL", () => { vi.stubEnv("VITE_CLERK_PUBLISHABLE_KEY", "pk_test_example"); vi.stubEnv("VITE_CLERK_JWT_TEMPLATE", "t3-relay"); vi.stubEnv("VITE_T3CODE_RELAY_URL", "http://relay.example.test"); expect(hasCloudPublicConfig()).toBe(false); }); it("reports the missing Clerk JWT template as structured configuration", () => { vi.stubEnv("VITE_CLERK_JWT_TEMPLATE", ""); expect(() => resolveRelayClerkTokenOptions()).toThrowError( new CloudPublicConfigMissingError({ key: "T3CODE_CLERK_JWT_TEMPLATE" }), ); });});
import { afterEach, describe, expect, it, vi } from "vite-plus/test";
import {
CloudPublicConfigMissingError,
hasCloudPublicConfig,
resolveRelayClerkTokenOptions,
} from "./publicConfig.ts";
afterEach(() => {
vi.unstubAllEnvs();
});
describe("hasCloudPublicConfig", () => {
it("requires both public cloud values", () => {
vi.stubEnv("VITE_CLERK_PUBLISHABLE_KEY", "");
vi.stubEnv("VITE_CLERK_JWT_TEMPLATE", "");
vi.stubEnv("VITE_T3CODE_RELAY_URL", "");
expect(hasCloudPublicConfig()).toBe(false);
vi.stubEnv("VITE_CLERK_PUBLISHABLE_KEY", "pk_test_example");
expect(hasCloudPublicConfig()).toBe(false);
vi.stubEnv("VITE_CLERK_JWT_TEMPLATE", "t3-relay");
expect(hasCloudPublicConfig()).toBe(false);
vi.stubEnv("VITE_T3CODE_RELAY_URL", "https://relay.example.test");
expect(hasCloudPublicConfig()).toBe(true);
});
it("rejects an insecure relay URL", () => {
vi.stubEnv("VITE_CLERK_PUBLISHABLE_KEY", "pk_test_example");
vi.stubEnv("VITE_CLERK_JWT_TEMPLATE", "t3-relay");
vi.stubEnv("VITE_T3CODE_RELAY_URL", "http://relay.example.test");
expect(hasCloudPublicConfig()).toBe(false);
});
it("reports the missing Clerk JWT template as structured configuration", () => {
vi.stubEnv("VITE_CLERK_JWT_TEMPLATE", "");
expect(() => resolveRelayClerkTokenOptions()).toThrowError(
new CloudPublicConfigMissingError({ key: "T3CODE_CLERK_JWT_TEMPLATE" }),
);
});
});