test: polish soap wizard test run flow

This commit is contained in:
a.tolmachev
2026-04-11 02:01:54 +03:00
parent e60d848293
commit feb749b7cf
6 changed files with 263 additions and 46 deletions
+37 -21
View File
@@ -2736,27 +2736,9 @@ impl PostgresRegistry {
.bind(Json(serialize_json_value(&snapshot.output_mapping)?))
.bind(Json(serialize_json_value(&snapshot.execution_config)?))
.bind(Json(serialize_json_value(&snapshot.tool_description)?))
.bind(Json(
snapshot
.samples
.clone()
.map(|value| serialize_json_value(&value))
.transpose()?,
))
.bind(Json(
snapshot
.generated_draft
.clone()
.map(|value| serialize_json_value(&value))
.transpose()?,
))
.bind(Json(
snapshot
.config_export
.clone()
.map(|value| serialize_json_value(&value))
.transpose()?,
))
.bind(serialize_option_json_value(&snapshot.samples)?.map(Json))
.bind(serialize_option_json_value(&snapshot.generated_draft)?.map(Json))
.bind(serialize_option_json_value(&snapshot.config_export)?.map(Json))
.bind(snapshot.id.as_str())
.bind(to_db_version(snapshot.version))
.execute(&mut *tx)
@@ -4539,6 +4521,40 @@ mod tests {
database.cleanup().await;
}
#[tokio::test]
async fn update_operation_draft_persists_optional_json_columns_as_sql_null() {
let database = TestDatabase::new().await;
let registry = database.registry().await;
let mut operation = test_operation("op_rest_02b", 1, OperationStatus::Draft);
registry
.create_operation(&test_workspace_id(), &operation, None)
.await
.unwrap();
operation.generated_draft = None;
operation.samples = None;
operation.config_export = None;
operation.updated_at = "2026-03-25T12:34:00Z".to_owned();
registry
.update_operation_draft(&test_workspace_id(), &operation)
.await
.unwrap();
let stored = registry
.get_operation_version(&test_workspace_id(), &operation.id, operation.version)
.await
.unwrap()
.unwrap();
assert_eq!(stored.snapshot.generated_draft, None);
assert_eq!(stored.snapshot.samples, None);
assert_eq!(stored.snapshot.config_export, None);
database.cleanup().await;
}
#[tokio::test]
async fn stores_auth_profiles_and_artifact_metadata() {
let database = TestDatabase::new().await;