- Tests caught 2 real bugs:
- Zod NaN bypass in orders/offers schemas (Number(v) || fallback)
- invoiceTotalWithVat using Number() on { toNumber() } objects
- 7 new test files covering auth, env, exchange rates, NAS paths,
schema NaN rejection, invoice VAT calculation, customer validation
- 45 tests passing, build clean
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { config } from "../config/env";
|
|
|
|
describe("env validation", () => {
|
|
it("has numeric port within valid range", () => {
|
|
expect(typeof config.port).toBe("number");
|
|
expect(config.port).toBeGreaterThan(0);
|
|
expect(config.port).toBeLessThanOrEqual(65535);
|
|
});
|
|
|
|
it("has JWT_SECRET defined", () => {
|
|
expect(config.jwt.secret).toBeTruthy();
|
|
expect(config.jwt.secret.length).toBeGreaterThanOrEqual(32);
|
|
});
|
|
|
|
it("has TOTP_ENCRYPTION_KEY defined", () => {
|
|
expect(config.totp.encryptionKey).toBeTruthy();
|
|
expect(config.totp.encryptionKey.length).toBeGreaterThanOrEqual(32);
|
|
});
|
|
|
|
it("has positive JWT expiry values", () => {
|
|
expect(config.jwt.accessTokenExpiry).toBeGreaterThan(0);
|
|
expect(config.jwt.refreshTokenSessionExpiry).toBeGreaterThan(0);
|
|
expect(config.jwt.refreshTokenRememberExpiry).toBeGreaterThan(0);
|
|
});
|
|
|
|
it("has positive maxUploadSize", () => {
|
|
expect(config.nas.maxUploadSize).toBeGreaterThan(0);
|
|
});
|
|
|
|
it("has DATABASE_URL defined", () => {
|
|
expect(config.db.url).toBeTruthy();
|
|
});
|
|
});
|