|
| 1 | +import { createEnv } from '@t3-oss/env-core'; |
| 2 | +import { config as dotenvConfig } from 'dotenv'; |
| 3 | +import { z } from 'zod/v4'; |
| 4 | + |
| 5 | +import { defaultLocale, locales } from '~/i18n/locales'; |
| 6 | + |
| 7 | +dotenvConfig({ path: ['.env', '.env.local', '.env.test'], override: true }); |
| 8 | + |
| 9 | +const localeSchema = z.string().refine((val: string) => locales.includes(val), { |
| 10 | + error: `TESTS_LOCALE must be one of: ${locales.join(', ')}`, |
| 11 | +}); |
| 12 | + |
| 13 | +export const testEnv = createEnv({ |
| 14 | + server: { |
| 15 | + BIGCOMMERCE_ADMIN_API_HOST: z.string().optional().default('api.bigcommerce.com'), |
| 16 | + BIGCOMMERCE_ACCESS_TOKEN: z.string().optional(), |
| 17 | + BIGCOMMERCE_ACCESS_TOKEN_CLIENT_ID: z.string().optional(), |
| 18 | + BIGCOMMERCE_ACCESS_TOKEN_CLIENT_SECRET: z.string().optional(), |
| 19 | + BIGCOMMERCE_CHANNEL_ID: z.coerce.number().optional(), |
| 20 | + BIGCOMMERCE_STORE_HASH: z.string().optional(), |
| 21 | + PLAYWRIGHT_TEST_BASE_URL: z.string().optional().default('http://localhost:3000'), |
| 22 | + VERCEL_PROTECTION_BYPASS: z.string().optional().default(''), |
| 23 | + CI: z.stringbool().optional().default(false), |
| 24 | + TESTS_READ_ONLY: z.stringbool().optional().default(false), |
| 25 | + TESTS_LOCALE: localeSchema.default(defaultLocale), |
| 26 | + TESTS_FALLBACK_LOCALE: localeSchema.default(defaultLocale), |
| 27 | + TEST_CUSTOMER_ID: z.coerce.number().optional(), |
| 28 | + TEST_CUSTOMER_EMAIL: z.string().optional(), |
| 29 | + TEST_CUSTOMER_PASSWORD: z.string().optional(), |
| 30 | + DEFAULT_PRODUCT_ID: z.coerce.number().optional(), |
| 31 | + }, |
| 32 | + runtimeEnv: process.env, |
| 33 | + emptyStringAsUndefined: true, |
| 34 | +}); |
0 commit comments