\Tests\FeaturePermissionCacheClearTest

用户层缓存清理闭环

被测对象:PermissionCacheService(clearUserPermissions / clearUsersPermissions) 守护约定:用户层缓存全清——裸 Set(user:permission:list)+ user:menu:tree / user:role:list / user:user:scope / user:dept:scope(tag 存储); pivot 批量直写不触发模型事件,此手动清是唯一失效路径。

Summary

Methods
Properties
Constants
test_clear_user_permissions_clears_all_user_layer_caches()
test_clear_users_permissions_covers_multiple_users()
No public properties found
No constants found
requireRedis()
buildCacheRegistry()
setUp()
No protected properties found
N/A
No private methods found
$userId
N/A

Properties

$userId

$userId : int

Type

int

Methods

test_clear_user_permissions_clears_all_user_layer_caches()

test_clear_user_permissions_clears_all_user_layer_caches() : void

验证 clearUserPermissions 清空裸 Set + 四个 tag 缓存(pivot 直写后唯一失效路径)。

test_clear_users_permissions_covers_multiple_users()

test_clear_users_permissions_covers_multiple_users() : void

验证 clearUsersPermissions 覆盖多用户。

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