Some checks failed
Build & Deploy KLZ Cables / 🔍 Prepare Environment (push) Successful in 8s
Build & Deploy KLZ Cables / 🧪 Quality Assurance (push) Successful in 1m35s
Build & Deploy KLZ Cables / 🏗️ Build Gatekeeper (push) Successful in 20s
Build & Deploy KLZ Cables / 🏗️ Build App (push) Failing after 5m36s
Build & Deploy KLZ Cables / 🚀 Deploy (push) Has been skipped
Build & Deploy KLZ Cables / ⚡ PageSpeed (push) Has been skipped
Build & Deploy KLZ Cables / 🔔 Notifications (push) Successful in 2s
71 lines
2.1 KiB
TypeScript
71 lines
2.1 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { envSchema } from './env';
|
|
|
|
describe('envSchema', () => {
|
|
it('should allow missing MAIL_HOST in development', () => {
|
|
const result = envSchema.safeParse({
|
|
NEXT_PUBLIC_BASE_URL: 'http://localhost:3000',
|
|
TARGET: 'development',
|
|
});
|
|
expect(result.success).toBe(true);
|
|
});
|
|
|
|
it('should require MAIL_HOST in production', () => {
|
|
const result = envSchema.safeParse({
|
|
NEXT_PUBLIC_BASE_URL: 'https://example.com',
|
|
TARGET: 'production',
|
|
});
|
|
expect(result.success).toBe(false);
|
|
if (!result.success) {
|
|
expect(result.error.issues[0].message).toBe(
|
|
'MAIL_HOST is required in non-development environments',
|
|
);
|
|
}
|
|
});
|
|
|
|
it('should require MAIL_HOST in testing', () => {
|
|
const result = envSchema.safeParse({
|
|
NEXT_PUBLIC_BASE_URL: 'https://testing.example.com',
|
|
TARGET: 'testing',
|
|
});
|
|
expect(result.success).toBe(false);
|
|
if (!result.success) {
|
|
expect(result.error.issues[0].message).toBe(
|
|
'MAIL_HOST is required in non-development environments',
|
|
);
|
|
}
|
|
});
|
|
|
|
it('should require MAIL_HOST in staging', () => {
|
|
const result = envSchema.safeParse({
|
|
NEXT_PUBLIC_BASE_URL: 'https://staging.example.com',
|
|
TARGET: 'staging',
|
|
});
|
|
expect(result.success).toBe(false);
|
|
if (!result.success) {
|
|
expect(result.error.issues[0].message).toBe(
|
|
'MAIL_HOST is required in non-development environments',
|
|
);
|
|
}
|
|
});
|
|
|
|
it('should pass if MAIL_HOST is provided in production', () => {
|
|
const result = envSchema.safeParse({
|
|
NEXT_PUBLIC_BASE_URL: 'https://example.com',
|
|
TARGET: 'production',
|
|
MAIL_HOST: 'smtp.example.com',
|
|
});
|
|
expect(result.success).toBe(true);
|
|
});
|
|
|
|
it('should skip MAIL_HOST requirement if SKIP_RUNTIME_ENV_VALIDATION is true', () => {
|
|
process.env.SKIP_RUNTIME_ENV_VALIDATION = 'true';
|
|
const result = envSchema.safeParse({
|
|
NEXT_PUBLIC_BASE_URL: 'https://example.com',
|
|
TARGET: 'production',
|
|
});
|
|
expect(result.success).toBe(true);
|
|
delete process.env.SKIP_RUNTIME_ENV_VALIDATION;
|
|
});
|
|
});
|