Release v2.0.0
CI / Windows baseline (push) Canceled after 0s

This commit is contained in:
2026-09-11 18:29:33 +03:00
parent c5532f2087
commit c6b66a4ed7
8 changed files with 192 additions and 19 deletions
@@ -105,6 +105,38 @@ fn trusted_check_persists_redacted_state_recovers_backup_and_reports_stale() {
.expect("restored state must be JSON");
}
#[test]
fn large_multi_platform_release_selects_only_the_exact_windows_asset() {
let workspace = TestWorkspace::new();
let service = workspace.service();
let component = catalog_component(&service, ComponentId::SingBox);
let response = metadata_response(
&component,
"1.14.0",
"sing-box-1.14.0-windows-amd64.zip",
b"asset",
DigestMode::Trusted,
);
let mut metadata: Value = serde_json::from_slice(&response.body).unwrap();
// Real sing-box 1.14.0 publishes 167 assets. Response bytes are already bounded.
for index in 1..167 {
metadata["assets"].as_array_mut().unwrap().push(json!({
"id": 1000 + index,
"name": format!("other-platform-{index}.zip"),
"size": 10,
"browser_download_url": format!("https://github.com/SagerNet/sing-box/releases/download/v1.14.0/other-platform-{index}.zip")
}));
}
let transport = MockTransport::new(vec![ResponseSpec::ok(
serde_json::to_vec(&metadata).unwrap(),
)]);
let checked = service
.check_for_update(ComponentId::SingBox, CHECKED_AT, &transport)
.unwrap();
assert_eq!(checked.latest_known_version, "1.14.0");
assert_eq!(checked.trust, UpdateCheckTrust::Trusted);
}
#[test]
fn missing_or_malformed_digest_is_observable_and_never_downloaded() {
for (mode, expected) in [