/
opt
/
mawid
/
apps
/
api
/
src
/
config
/
/opt/mawid/apps/api/src/config
mkdir
upload
Name
Size
Mode
Actions
env.spec.ts
1366
0644
edit
dl
rm
env.ts
2072
0644
edit
dl
rm
Edit:
/opt/mawid/apps/api/src/config/env.spec.ts
(1366B)
import { validateEnv } from './env'; const validEnv = { NODE_ENV: 'test', DATABASE_URL: 'postgresql://mawid:mawid@localhost:5432/mawid', REDIS_URL: 'redis://localhost:6379', JWT_SECRET: 'a-test-secret-at-least-16-chars', APP_BASE_URL: 'http://localhost:3001', DASHBOARD_BASE_URL: 'http://localhost:3000', }; describe('validateEnv', () => { it('accepts a valid environment and applies defaults', () => { const env = validateEnv(validEnv); expect(env.API_PORT).toBe(3001); expect(env.TZ).toBe('Europe/Istanbul'); expect(env.FEATURE_ECHO_MODE).toBe(false); }); it('coerces FEATURE_ECHO_MODE to boolean', () => { const env = validateEnv({ ...validEnv, FEATURE_ECHO_MODE: 'true' }); expect(env.FEATURE_ECHO_MODE).toBe(true); }); it('refuses to boot with missing required vars', () => { const { DATABASE_URL: _omitted, ...rest } = validEnv; expect(() => validateEnv(rest)).toThrow(/DATABASE_URL/); }); it('refuses a short JWT_SECRET', () => { expect(() => validateEnv({ ...validEnv, JWT_SECRET: 'short' })).toThrow(/JWT_SECRET/); }); it('requires WhatsApp credentials only in production', () => { expect(() => validateEnv({ ...validEnv, NODE_ENV: 'production' })).toThrow( /WA_ACCESS_TOKEN is required in production/, ); expect(() => validateEnv(validEnv)).not.toThrow(); }); });
Save
cmd:
run