//! Copyright (c) 2022-2026 GitDataAi All rights reserved. use gitks::pb::*; use gitks::remote::find_remote::{find_remote_repository, find_remote_root_ref}; #[test] fn test_find_remote_repository_empty_url() { let resp = find_remote_repository(FindRemoteRepositoryRequest { remote_url: String::new(), }) .unwrap(); assert!(!resp.exists); assert!(resp.refs.is_empty()); } #[test] fn test_find_remote_repository_invalid_scheme() { let resp = find_remote_repository(FindRemoteRepositoryRequest { remote_url: "ftp://bad".into(), }); assert!(resp.is_err()); } #[test] fn test_find_remote_repository_file_scheme_blocked() { let resp = find_remote_repository(FindRemoteRepositoryRequest { remote_url: "file:///tmp/test.git".into(), }); assert!(resp.is_err()); } #[test] fn test_find_remote_root_ref_empty_url() { let resp = find_remote_root_ref(FindRemoteRootRefRequest { remote_url: String::new(), }) .unwrap(); assert!(resp.ref_name.is_empty()); assert!(resp.target_oid.is_empty()); } #[test] fn test_find_remote_root_ref_invalid_scheme() { let resp = find_remote_root_ref(FindRemoteRootRefRequest { remote_url: "ftp://bad".into(), }); assert!(resp.is_err()); } #[test] fn test_find_remote_root_ref_unreachable() { // A valid scheme but unreachable host should return empty, not error let resp = find_remote_root_ref(FindRemoteRootRefRequest { remote_url: "https://0.0.0.0:1/nonexistent.git".into(), }) .unwrap(); assert!(resp.ref_name.is_empty() || resp.target_oid.is_empty()); }