You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

50 lines
1.8 KiB

#!/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("🎉 环境变量验证功能测试完成!")