From 0a647fc7c403e4f3b869e5ae44c2d9c8a454c52f Mon Sep 17 00:00:00 2001 From: Arthur Belleville Date: Wed, 6 May 2026 23:44:02 +0200 Subject: [PATCH] fix: make revenuecat config optional in api --- .../config/revenuecat-config.test.ts | 19 +++++++------------ apps/api/src/config.ts | 15 +++------------ 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/apps/api/src/__tests__/config/revenuecat-config.test.ts b/apps/api/src/__tests__/config/revenuecat-config.test.ts index bc88fb8..5dc1bba 100644 --- a/apps/api/src/__tests__/config/revenuecat-config.test.ts +++ b/apps/api/src/__tests__/config/revenuecat-config.test.ts @@ -59,21 +59,16 @@ describe("createConfig revenuecat env", () => { expect(config.REVENUECAT_ANNUAL_PRODUCT_ID).toBe("annual_ios"); }); - it("throws when the revenuecat webhook auth header is missing", () => { + it("defaults revenuecat env to empty strings when unset", () => { setRequiredBaseEnv(); process.env.REVENUECAT_WEBHOOK_AUTH_HEADER = ""; - - expect(() => createConfig(baseSecrets)).toThrow( - "Missing required environment variable: REVENUECAT_WEBHOOK_AUTH_HEADER" - ); - }); - - it("throws when the annual product id is missing", () => { - setRequiredBaseEnv(); + process.env.REVENUECAT_SOLO_PRODUCT_ID = ""; process.env.REVENUECAT_ANNUAL_PRODUCT_ID = ""; - expect(() => createConfig(baseSecrets)).toThrow( - "Missing required environment variable: REVENUECAT_ANNUAL_PRODUCT_ID" - ); + const config = createConfig(baseSecrets); + + expect(config.REVENUECAT_WEBHOOK_AUTH_HEADER).toBe(""); + expect(config.REVENUECAT_SOLO_PRODUCT_ID).toBe(""); + expect(config.REVENUECAT_ANNUAL_PRODUCT_ID).toBe(""); }); }); diff --git a/apps/api/src/config.ts b/apps/api/src/config.ts index 76dc4a3..0506306 100644 --- a/apps/api/src/config.ts +++ b/apps/api/src/config.ts @@ -136,18 +136,9 @@ export function createConfig(secrets?: Secrets): AppConfig { "STRIPE_FOUNDER_PRICE_ID", process.env.STRIPE_FOUNDER_PRICE_ID ), - REVENUECAT_WEBHOOK_AUTH_HEADER: validateEnvVar( - "REVENUECAT_WEBHOOK_AUTH_HEADER", - process.env.REVENUECAT_WEBHOOK_AUTH_HEADER - ), - REVENUECAT_SOLO_PRODUCT_ID: validateEnvVar( - "REVENUECAT_SOLO_PRODUCT_ID", - process.env.REVENUECAT_SOLO_PRODUCT_ID - ), - REVENUECAT_ANNUAL_PRODUCT_ID: validateEnvVar( - "REVENUECAT_ANNUAL_PRODUCT_ID", - process.env.REVENUECAT_ANNUAL_PRODUCT_ID - ), + REVENUECAT_WEBHOOK_AUTH_HEADER: process.env.REVENUECAT_WEBHOOK_AUTH_HEADER || "", + REVENUECAT_SOLO_PRODUCT_ID: process.env.REVENUECAT_SOLO_PRODUCT_ID || "", + REVENUECAT_ANNUAL_PRODUCT_ID: process.env.REVENUECAT_ANNUAL_PRODUCT_ID || "", EMAIL_USER: validateEnvVar("EMAIL_USER", process.env.EMAIL_USER), EMAIL_CLIENT_ID: validateEnvVar("EMAIL_CLIENT_ID", process.env.EMAIL_CLIENT_ID), EMAIL_CLIENT_SECRET: isTestMode