\Tests\FeatureTemplateEngineServiceTest

模板引擎版本工作流回归

被测对象:publish / rollback / delete 守护约定:① 发布 = 版本 +1 + 线上内容更新 + 快照落库 + 草稿复位 ② 发布合并语义:未传字段保持原值 ③ 回滚 = 快照内容上线为 新版本 + 新快照注明来源(历史永不失联)④ 内置模板不可删。

Summary

Methods
Properties
Constants
test_publish_bumps_version_and_snapshots()
test_publish_keeps_unsubmitted_fields()
test_rollback_restores_snapshot_as_new_version()
test_rollback_missing_version_rejected()
test_delete_system_template_rejected()
test_delete_regular_template_succeeds()
No public properties found
No constants found
requireRedis()
buildCacheRegistry()
setUp()
No protected properties found
N/A
makeTemplate()
$service
N/A

Properties

Methods

test_publish_bumps_version_and_snapshots()

test_publish_bumps_version_and_snapshots() : void

发布:版本 +1、线上内容更新、快照落库(内容/版本一致)、草稿复位

test_publish_keeps_unsubmitted_fields()

test_publish_keeps_unsubmitted_fields() : void

发布合并语义:未传字段保持原值(防误调用清空线上内容)

test_rollback_restores_snapshot_as_new_version()

test_rollback_restores_snapshot_as_new_version() : void

回滚:线上 = 历史快照内容、版本 +1、新快照注明「回滚自 v{n}」——历史永不失联

test_rollback_missing_version_rejected()

test_rollback_missing_version_rejected() : void

回滚到不存在的版本:拒绝

test_delete_system_template_rejected()

test_delete_system_template_rejected() : void

内置模板删除锁定(is_system=1 拒绝,随 Seeder 分发的模板防误删)

test_delete_regular_template_succeeds()

test_delete_regular_template_succeeds() : 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

makeTemplate()

makeTemplate(array  $attrs = []) : \App\Models\SysTemplate

Parameters

array $attrs

Returns

\App\Models\SysTemplate —