#!/usr/bin/env node /** * 环境变量验证测试脚本 * 用于验证envValidator.js的功能 */ import { validateEnvironment, getEnvConfig, maskSecret } from "../src/shared/utils/validation/envValidator.js" console.log("🧪 开始测试环境变量验证功能...\n") // 测试1: 缺少必需环境变量 console.log("📋 测试1: 缺少必需环境变量") delete process.env.SESSION_SECRET delete process.env.JWT_SECRET console.log("结果:", validateEnvironment() ? "通过" : "失败 ❌") console.log() // 测试2: 恢复环境变量但格式错误 console.log("📋 测试2: 环境变量格式错误") process.env.SESSION_SECRET = "short" // 太短 process.env.JWT_SECRET = "short" // 太短 process.env.PORT = "not-a-number" // 不是数字 console.log("结果:", validateEnvironment() ? "通过" : "失败 ❌") console.log() // 测试3: 正确的环境变量 console.log("📋 测试3: 正确的环境变量配置") process.env.SESSION_SECRET = "this-is-a-valid-session-secret-key-with-32-chars,backup-key" process.env.JWT_SECRET = "this-is-a-valid-jwt-secret-key-with-32-characters" process.env.PORT = "3000" process.env.NODE_ENV = "development" console.log("结果:", validateEnvironment() ? "通过 ✅" : "失败") console.log() // 测试4: 脱敏功能 console.log("📋 测试4: 脱敏功能测试") console.log("原文:", "supersecret123456") console.log("脱敏:", maskSecret("supersecret123456")) console.log("短密钥脱敏:", maskSecret("short")) console.log("空值脱敏:", maskSecret("")) console.log() // 测试5: 配置获取 console.log("📋 测试5: 配置获取功能") const config = getEnvConfig() console.log("必需变量:", config.required) console.log("可选变量:", Object.keys(config.optional)) console.log() console.log("🎉 环境变量验证功能测试完成!")