import { assert, it } from "@effect/vitest"; import * as ConfigProvider from "effect/ConfigProvider"; import * as Effect from "effect/Effect"; import * as Result from "effect/Result"; import { hostedAppUrlConfig, makeCloudCliOAuthConfig, makeRelayUrlConfig, resolveRelayClientTracingConfig, } from "./publicConfig.ts"; const provideEnv = (env: Readonly>) => Effect.provide(ConfigProvider.layer(ConfigProvider.fromEnv({ env }))); it.effect("uses the statically injected relay URL when no runtime override exists", () => Effect.gen(function* () { const relayUrl = yield* makeRelayUrlConfig("https://embedded.example.test///").pipe( provideEnv({}), ); assert.equal(relayUrl, "https://embedded.example.test"); }), ); it.effect("prefers a runtime relay URL override over the statically injected value", () => Effect.gen(function* () { const relayUrl = yield* makeRelayUrlConfig("https://embedded.example.test").pipe( provideEnv({ T3CODE_RELAY_URL: "https://runtime.example.test///" }), ); assert.equal(relayUrl, "https://runtime.example.test"); }), ); it.effect("requires a relay URL when the server bundle has no injected value", () => makeRelayUrlConfig("").pipe(provideEnv({}), Effect.flip), ); it.effect("rejects an insecure runtime relay URL override", () => makeRelayUrlConfig("https://embedded.example.test").pipe( provideEnv({ T3CODE_RELAY_URL: "http://runtime.example.test" }), Effect.flip, ), ); it.effect("rejects an injected relay URL with a non-origin path", () => makeRelayUrlConfig("https://embedded.example.test/path").pipe(provideEnv({}), Effect.flip), ); it.effect("normalizes the hosted app URL to an absolute origin", () => Effect.gen(function* () { assert.equal( yield* hostedAppUrlConfig.pipe( provideEnv({ T3CODE_HOSTED_APP_URL: "https://nightly.app.t3.codes" }), ), "https://nightly.app.t3.codes", ); assert.equal( yield* hostedAppUrlConfig.pipe( provideEnv({ T3CODE_HOSTED_APP_URL: "http://localhost:5733" }), ), "http://localhost:5733", ); }), ); it.effect("rejects malformed or insecure hosted app URLs", () => Effect.gen(function* () { for (const value of [ "app.t3.codes", "http://app.t3.codes", "https://app.t3.codes/nested", "https://app.t3.codes?alias=true", ]) { const result = yield* hostedAppUrlConfig.pipe( provideEnv({ T3CODE_HOSTED_APP_URL: value }), Effect.result, ); assert.isTrue(Result.isFailure(result), value); } }), ); it.effect("derives direct Clerk OAuth endpoints from statically injected public config", () => Effect.gen(function* () { const config = yield* makeCloudCliOAuthConfig({ clerkPublishableKeyFallback: "pk_test_Y2xlcmsuZXhhbXBsZS50ZXN0JA==", clerkCliOAuthClientIdFallback: "oauth_client_embedded", }).pipe(provideEnv({})); assert.deepEqual(config, { tokenEndpoint: "https://clerk.example.test/oauth/token", clientId: "oauth_client_embedded", loopbackPort: 34338, redirectUri: "http://127.0.0.1:34338/callback", scopes: ["openid", "profile", "email"], }); }), ); it.effect("prefers runtime Clerk OAuth config overrides over statically injected values", () => Effect.gen(function* () { const config = yield* makeCloudCliOAuthConfig({ clerkPublishableKeyFallback: "pk_test_ZW1iZWRkZWQuZXhhbXBsZS50ZXN0JA==", clerkCliOAuthClientIdFallback: "oauth_client_embedded", }).pipe( provideEnv({ T3CODE_CLERK_PUBLISHABLE_KEY: "pk_test_cnVudGltZS5leGFtcGxlLnRlc3Qk", T3CODE_CLERK_CLI_OAUTH_CLIENT_ID: "oauth_client_runtime", }), ); assert.equal(config.tokenEndpoint, "https://runtime.example.test/oauth/token"); assert.equal(config.clientId, "oauth_client_runtime"); }), ); it.effect("requires Clerk OAuth config when the server bundle has no injected values", () => makeCloudCliOAuthConfig({ clerkPublishableKeyFallback: "", clerkCliOAuthClientIdFallback: "", }).pipe(provideEnv({}), Effect.flip), ); it.effect("reports malformed Clerk publishable keys as typed configuration failures", () => Effect.gen(function* () { const result = yield* makeCloudCliOAuthConfig({ clerkPublishableKeyFallback: "pk_test_not-base64!!", clerkCliOAuthClientIdFallback: "oauth_client_embedded", }).pipe(provideEnv({}), Effect.result); assert.isTrue(Result.isFailure(result)); if (Result.isFailure(result)) { assert.equal(result.failure.cause._tag, "SourceError"); if (result.failure.cause._tag === "SourceError") { assert.equal( result.failure.cause.message, "Failed to derive Clerk Frontend API URL from the publishable key.", ); assert.instanceOf(result.failure.cause.cause, Error); } } }), ); it("resolves relay client tracing from runtime config with build-time fallback", () => { const fallback = { tracesUrl: "https://embedded.example.test/v1/traces", tracesDataset: "embedded-dataset", tracesToken: "embedded-token", }; assert.deepEqual(resolveRelayClientTracingConfig({}, fallback), fallback); assert.deepEqual( resolveRelayClientTracingConfig( { T3CODE_RELAY_CLIENT_OTLP_TRACES_URL: "https://runtime.example.test/v1/traces", T3CODE_RELAY_CLIENT_OTLP_TRACES_DATASET: "runtime-dataset", T3CODE_RELAY_CLIENT_OTLP_TRACES_TOKEN: "runtime-token", }, fallback, ), { tracesUrl: "https://runtime.example.test/v1/traces", tracesDataset: "runtime-dataset", tracesToken: "runtime-token", }, ); assert.equal( resolveRelayClientTracingConfig( { T3CODE_RELAY_CLIENT_OTLP_TRACES_URL: "http://insecure.example.test/v1/traces", T3CODE_RELAY_CLIENT_OTLP_TRACES_DATASET: "runtime-dataset", T3CODE_RELAY_CLIENT_OTLP_TRACES_TOKEN: "runtime-token", }, fallback, ), null, ); });