补外部生成主表 provider checkpoint 归一化单测

- 新增 old_external_generation_job_rows_default_to_unsubmitted_provider
- 断言旧迁移行的 provider_kind 与 provider_task_id 都归一成 null
- 守住 at-most-once submit 的向后兼容路径
This commit is contained in:
2026-09-22 16:52:19 +08:00
parent ed2eb43fe6
commit 3ab7b386f1
@@ -1938,6 +1938,19 @@ mod migration_bootstrap_secret_tests {
assert_eq!(normalized["warning_message"], serde_json::Value::Null);
}
/// 旧迁移包的 external_generation_job 没有 provider checkpoint 两列:导入后必须都是
/// null(等同 `#[default(None)]`),否则 at-most-once submit 会把旧任务误判成已提交。
#[test]
fn old_external_generation_job_rows_default_to_unsubmitted_provider() {
let normalized = normalize_migration_row(
"external_generation_job",
&serde_json::json!({ "job_id": "task-1" }),
);
assert_eq!(normalized["provider_kind"], serde_json::Value::Null);
assert_eq!(normalized["provider_task_id"], serde_json::Value::Null);
}
#[test]
fn old_editor_canvas_rows_default_to_legacy_storage() {
let normalized = normalize_migration_row(