\Tests\FeatureBatchUserStatusRevocationTest

批量停用会话吊销

被测对象:UserConfigService::batchUpdateStatus(事务 + 提交后 Redis 副作用) 守护约定:停用成功后会话键/age 键删除、token 字段清空; 批量整体失败(越权)时事务回滚,会话保持有效(副作用只在提交后执行)。

Summary

Methods
Properties
Constants
test_batch_disable_revokes_session_after_commit()
test_batch_rejection_keeps_session_alive()
No public properties found
No constants found
requireRedis()
buildCacheRegistry()
setUp()
No protected properties found
N/A
makeUser()
openSession()
No private properties found
N/A

Methods

test_batch_disable_revokes_session_after_commit()

test_batch_disable_revokes_session_after_commit() : void

批量停用成功:提交后吊销会话(Redis 会话/age 键删除 + token 字段清空)。

test_batch_rejection_keeps_session_alive()

test_batch_rejection_keeps_session_alive() : void

批量整体失败(目标越权)时事务回滚:会话保持有效,无半截下线。

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

makeUser()

makeUser(array  $attrs = []) : \App\Models\SysUser

Parameters

array $attrs

Returns

\App\Models\SysUser —

openSession()

openSession(\App\Models\SysUser  $user) : string

建立有效会话(会话键 + age 键 + 库内 token_key)。

Parameters

\App\Models\SysUser $user

Returns

string —