wdc
This commit is contained in:
51
src/__tests__/test-env.mjs
Normal file
51
src/__tests__/test-env.mjs
Normal file
@@ -0,0 +1,51 @@
|
||||
import { z } from "zod";
|
||||
|
||||
const testEnvSchema = z.object({
|
||||
// Saleor
|
||||
TEST_SALEOR_API_URL: z.string().url(),
|
||||
TEST_SALEOR_APP_TOKEN: z.string(),
|
||||
TEST_SALEOR_APP_ID: z.string(),
|
||||
TEST_SALEOR_JWKS: z.string(),
|
||||
// Payment App
|
||||
TEST_PAYMENT_APP_SECRET_KEY: z.string(),
|
||||
TEST_PAYMENT_APP_PUBLISHABLE_KEY: z.string(),
|
||||
TEST_PAYMENT_APP_WEBHOOK_SECRET: z.string(),
|
||||
TEST_PAYMENT_APP_WEBHOOK_ID: z.string(),
|
||||
// Polly.js
|
||||
POLLY_MODE: z.enum(["record", "record_missing", "replay"]).optional().default("replay"),
|
||||
});
|
||||
|
||||
const processEnv = {
|
||||
// Saleor
|
||||
TEST_SALEOR_API_URL: process.env.TEST_SALEOR_API_URL,
|
||||
TEST_SALEOR_APP_TOKEN: process.env.TEST_SALEOR_APP_TOKEN,
|
||||
TEST_SALEOR_APP_ID: process.env.TEST_SALEOR_APP_ID,
|
||||
TEST_SALEOR_JWKS: process.env.TEST_SALEOR_JWKS,
|
||||
// Payment App
|
||||
TEST_PAYMENT_APP_SECRET_KEY: process.env.TEST_PAYMENT_APP_SECRET_KEY,
|
||||
TEST_PAYMENT_APP_PUBLISHABLE_KEY: process.env.TEST_PAYMENT_APP_PUBLISHABLE_KEY,
|
||||
TEST_PAYMENT_APP_WEBHOOK_SECRET: process.env.TEST_PAYMENT_APP_WEBHOOK_SECRET,
|
||||
TEST_PAYMENT_APP_WEBHOOK_ID: process.env.TEST_PAYMENT_APP_WEBHOOK_ID,
|
||||
// Polly.js
|
||||
POLLY_MODE: process.env.POLLY_MODE,
|
||||
};
|
||||
|
||||
/* c8 ignore start */
|
||||
/** @type z.infer<testEnvSchema>
|
||||
* @ts-ignore - can't type this properly in jsdoc */
|
||||
// eslint-disable-next-line import/no-mutable-exports
|
||||
let testEnv = process.env;
|
||||
|
||||
if (!!process.env.SKIP_ENV_VALIDATION == false) {
|
||||
const parsed = testEnvSchema.safeParse(processEnv);
|
||||
|
||||
if (parsed.success === false) {
|
||||
console.error("❌ Invalid environment variables:", parsed.error.flatten().fieldErrors);
|
||||
throw new Error("Invalid environment variables");
|
||||
}
|
||||
|
||||
testEnv = parsed.data;
|
||||
}
|
||||
/* c8 ignore stop */
|
||||
|
||||
export { testEnv };
|
||||
Reference in New Issue
Block a user