\Tests\FeatureSeedPasswordTest

内置账号初始密码生成

被测对象:TdSysUserSeeder(run 时的密码注入与静态明文表) 守护约定:静态 rows 不含已知默认密码(Td#2026@Admin 不匹配任何落库哈希); admin 与演示账号密码本次运行生成、哈希与盐配套可校验; TD_SEED_* 环境变量可固定密码且长度不足 8 位被拒绝。

Summary

Methods
Properties
Constants
test_seed_generates_fresh_passwords_matching_generated_plaintext()
test_env_pins_admin_password()
test_env_short_password_is_rejected()
No public properties found
No constants found
requireRedis()
buildCacheRegistry()
setUp()
tearDown()
No protected properties found
N/A
setSeedEnv()
No private properties found
N/A

Methods

test_seed_generates_fresh_passwords_matching_generated_plaintext()

test_seed_generates_fresh_passwords_matching_generated_plaintext() : void

验证 seed 运行生成全新密码:已知默认密码不再匹配任何账号,本次生成明文与落库哈希配套可校验。

test_env_pins_admin_password()

test_env_pins_admin_password() : void

验证环境变量可固定初始密码(admin 落库哈希与固定值配套)。

test_env_short_password_is_rejected()

test_env_short_password_is_rejected() : void

验证环境变量长度不足 8 位被拒绝(拒绝弱初始密码)。

requireRedis()

requireRedis() : void

Redis 依赖探针:直连 Redis 的测试(限流/会话/验证码)在无 Redis 环境(如 CI) 跳过而非失败——其余用例不受影响。CI 可设 TEST_REQUIRE_REDIS=1 强制模式: Redis 不可达即失败而非跳过,安全回归套件不允许静默消失。

buildCacheRegistry()

buildCacheRegistry(array  $items) : void

建缓存注册表最小 schema(td_sys_cache)并灌入注册项。

测试跑 sqlite :memory:,生产迁移含 PostgreSQL 专属 DDL 跑不通(DataScopeServiceTest 同因自建 schema); 而 CacheManager::registry() 现已从数据库表读取——凡走注册表的测试(remember/get/key/失效推导) 必须在 setUp 先调用本方法,否则注册表为空、remember 未登记名会走「自动登记」路径。

Parameters

array $items

setUp()

setUp() : void

tearDown()

tearDown() : void

setSeedEnv()

setSeedEnv(string  $key, ?string  $value) : void

三通道同步设置/清除 TD_SEED_*:env() 优先读 $_ENV/$_SERVER(.env 启动注入), 只写 putenv 会被启动注入值盖掉——必须三通道一起写/一起清。

Parameters

string $key
?string $value