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