Files
HIPCTF2/tests/backend/env-schema.spec.ts
T

35 lines
1.2 KiB
TypeScript

import { envSchema, SYSTEM_CATEGORY_KEYS, SETTINGS_KEYS } from '../../backend/src/config/env.schema';
describe('envSchema', () => {
it('accepts minimal valid env', () => {
const r = envSchema.safeParse({});
expect(r.success).toBe(true);
});
it('defaults DATABASE_PATH to ./data/db.sqlite', () => {
const r = envSchema.safeParse({});
expect(r.success).toBe(true);
expect((r.data as any).DATABASE_PATH).toBe('./data/db.sqlite');
});
it('defaults UPLOAD_DIR to ./data/uploads', () => {
const r = envSchema.safeParse({});
expect(r.success).toBe(true);
expect((r.data as any).UPLOAD_DIR).toBe('./data/uploads');
});
it('rejects invalid PORT', () => {
const r = envSchema.safeParse({ PORT: 'not-a-number' });
expect(r.success).toBe(false);
});
it('rejects short JWT secrets', () => {
const r = envSchema.safeParse({ JWT_ACCESS_SECRET: 'short' });
expect(r.success).toBe(false);
});
it('exposes the canonical system category and settings keys', () => {
expect(SYSTEM_CATEGORY_KEYS).toEqual(['crypto', 'forensics', 'pwn', 'web', 'misc', 'osint']);
expect(SETTINGS_KEYS.THEME_KEY).toBe('themeKey');
});
});