fix(tui): require uploaded release assets

This commit is contained in:
Hunter Bown
2026-05-27 06:15:28 -05:00
parent b6edd87135
commit f077d87970
2 changed files with 18 additions and 4 deletions
+1 -4
View File
@@ -8393,10 +8393,7 @@ fn release_has_uploaded_asset(json: &serde_json::Value, required: &str) -> bool
};
assets.iter().any(|asset| {
asset.get("name").and_then(serde_json::Value::as_str) == Some(required)
&& matches!(
asset.get("state").and_then(serde_json::Value::as_str),
None | Some("uploaded")
)
&& asset.get("state").and_then(serde_json::Value::as_str) == Some("uploaded")
})
}
+17
View File
@@ -2470,6 +2470,23 @@ fn version_hint_requires_complete_release_assets() {
version_hint_from_release_json(&missing_manifest, "0.8.46").is_none(),
"do not advertise a release before checksums are uploaded"
);
let mut pending_asset = complete_release_json("v0.8.47");
pending_asset["assets"].as_array_mut().expect("assets")[0]["state"] = serde_json::json!("open");
assert!(
version_hint_from_release_json(&pending_asset, "0.8.46").is_none(),
"do not advertise a release before every asset is uploaded"
);
let mut missing_state = complete_release_json("v0.8.47");
missing_state["assets"].as_array_mut().expect("assets")[0]
.as_object_mut()
.expect("asset object")
.remove("state");
assert!(
version_hint_from_release_json(&missing_state, "0.8.46").is_none(),
"do not accept malformed asset state as uploaded"
);
}
#[test]