// SPDX-License-Identifier: GPL-3.0-or-later use molotov_bootstrap::cdn::{CdnClient, RobloxClientVersion}; #[test] fn test_parse_client_version_json() { let json_payload = r#"{ "version": "version-8a7b6c5d4e3f2a10", "clientVersionUpload": "2.650.1234.0", "bootstrapperVersion": "1.0.0" }"#; let parsed = RobloxClientVersion::from_json(json_payload).expect("Should parse version response"); assert_eq!(parsed.guid, "version-8a7b6c5d4e3f2a10"); assert_eq!(parsed.upload_version, "2.650.1234.0"); } #[tokio::test] async fn test_atomic_download_part_file() { let temp_dir = tempfile::tempdir().unwrap(); let dest_path = temp_dir.path().join("test.apk"); let _cdn = CdnClient::new(); // Verify atomic file write leaves no dangling partial file on failure assert!(!dest_path.exists()); }