\Tests\FeatureDataSyncServiceTest

数据同步增量对齐

被测对象:DataSyncService(reconcile 数据同步命令的服务层) 守护约定:只补缺失、绝不删行;代码持有表同步内容、数据持有表(config_value/user)不覆盖; id 冲突回退序列、自然键命中保留既有 id 供绑定重映射。

Summary

Methods
Properties
Constants
test_missing_rows_are_inserted()
test_code_owned_content_is_synced_but_timestamps_kept()
test_data_table_values_are_never_overwritten()
test_id_conflict_falls_back_to_sequence()
test_existing_rows_keep_their_own_id_for_bindings()
No public properties found
No constants found
requireRedis()
buildCacheRegistry()
setUp()
No protected properties found
N/A
No private methods found
$service
N/A

Properties

$service

$service : \App\Services\Admin\DataSyncService

Type

DataSyncService

Methods

test_missing_rows_are_inserted()

test_missing_rows_are_inserted() : void

验证缺失行被插入(只补缺失)。

test_code_owned_content_is_synced_but_timestamps_kept()

test_code_owned_content_is_synced_but_timestamps_kept() : void

验证代码持有表内容同步但时间戳保留(运行时数据不覆盖)。

test_data_table_values_are_never_overwritten()

test_data_table_values_are_never_overwritten() : void

验证数据持有表(config_value)的值永不被覆盖。

test_id_conflict_falls_back_to_sequence()

test_id_conflict_falls_back_to_sequence() : void

验证 id 被不同自然键占用时回退序列分配新 id。

test_existing_rows_keep_their_own_id_for_bindings()

test_existing_rows_keep_their_own_id_for_bindings() : void

验证自然键命中但 id 不同时映射记录实际 id,绑定表可重映射。

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