diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-11 02:36:42 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-11 02:36:42 +0900 |
| commit | 4e99773a3d203e73b8bf6464490d05649a269fa7 (patch) | |
| tree | 7a6f1a7f773a14ea72dc2f9ff4124badd345833d /crates/mozart/src/commands/search.rs | |
| parent | 4df5f8491320e5795718cf0222e80fa27e57c8ad (diff) | |
| download | php-mozart-4e99773a3d203e73b8bf6464490d05649a269fa7.tar.gz php-mozart-4e99773a3d203e73b8bf6464490d05649a269fa7.tar.zst php-mozart-4e99773a3d203e73b8bf6464490d05649a269fa7.zip | |
test(commands): remove per-command tests
Diffstat (limited to 'crates/mozart/src/commands/search.rs')
| -rw-r--r-- | crates/mozart/src/commands/search.rs | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/crates/mozart/src/commands/search.rs b/crates/mozart/src/commands/search.rs index 7259e6c..3f7a01d 100644 --- a/crates/mozart/src/commands/search.rs +++ b/crates/mozart/src/commands/search.rs @@ -202,207 +202,3 @@ fn render_text( console_writeln!(io, "{padded_name}{warning}{desc_display}"); } } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_parse_search_response() { - use mozart_core::repository::packagist::SearchResponse; - - let json = r#"{ - "results": [ - { - "name": "monolog/monolog", - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "url": "https://packagist.org/packages/monolog/monolog", - "repository": "https://github.com/Seldaek/monolog", - "downloads": 500000000, - "favers": 20000 - }, - { - "name": "psr/log", - "description": "Common interface for logging libraries", - "url": "https://packagist.org/packages/psr/log", - "repository": null, - "downloads": 800000000, - "favers": 10000 - } - ], - "total": 2, - "next": null - }"#; - - let response: SearchResponse = serde_json::from_str(json).unwrap(); - assert_eq!(response.results.len(), 2); - assert_eq!(response.total, 2); - assert!(response.next.is_none()); - - let first = &response.results[0]; - assert_eq!(first.name, "monolog/monolog"); - assert_eq!(first.downloads, 500_000_000); - assert_eq!(first.favers, 20_000); - assert_eq!( - first.repository.as_deref(), - Some("https://github.com/Seldaek/monolog") - ); - - let second = &response.results[1]; - assert_eq!(second.name, "psr/log"); - assert!(second.repository.is_none()); - } - - #[test] - fn test_parse_search_response_with_abandoned() { - use mozart_core::repository::packagist::SearchResponse; - - let json = r#"{ - "results": [ - { - "name": "old/abandoned-pkg", - "description": "An abandoned package", - "url": "https://packagist.org/packages/old/abandoned-pkg", - "repository": "https://github.com/old/abandoned-pkg", - "downloads": 1000, - "favers": 10, - "abandoned": "new/replacement-pkg" - }, - { - "name": "active/pkg", - "description": "An active package", - "url": "https://packagist.org/packages/active/pkg", - "repository": null, - "downloads": 5000, - "favers": 100 - } - ], - "total": 2, - "next": null - }"#; - - let response: SearchResponse = serde_json::from_str(json).unwrap(); - assert_eq!(response.results.len(), 2); - - let first = &response.results[0]; - assert_eq!(first.name, "old/abandoned-pkg"); - assert_eq!( - first.abandoned.as_ref().and_then(|v| v.as_str()), - Some("new/replacement-pkg") - ); - - let second = &response.results[1]; - assert_eq!(second.name, "active/pkg"); - assert!(second.abandoned.is_none()); - } - - #[test] - fn test_parse_search_response_with_next() { - use mozart_core::repository::packagist::SearchResponse; - - let json = r#"{ - "results": [], - "total": 100, - "next": "https://packagist.org/search.json?q=monolog&page=2" - }"#; - - let response: SearchResponse = serde_json::from_str(json).unwrap(); - assert_eq!(response.total, 100); - assert_eq!( - response.next.as_deref(), - Some("https://packagist.org/search.json?q=monolog&page=2") - ); - } - - #[test] - fn test_is_abandoned_none() { - let result = make_result("vendor/pkg"); - assert!(!is_abandoned(&result)); - } - - #[test] - fn test_is_abandoned_true() { - let mut result = make_result("vendor/pkg"); - result.abandoned = Some(serde_json::Value::Bool(true)); - assert!(is_abandoned(&result)); - } - - #[test] - fn test_is_abandoned_false() { - let mut result = make_result("vendor/pkg"); - result.abandoned = Some(serde_json::Value::Bool(false)); - assert!(!is_abandoned(&result)); - } - - #[test] - fn test_is_abandoned_replacement_string() { - let mut result = make_result("vendor/pkg"); - result.abandoned = Some(serde_json::Value::String("other/pkg".to_string())); - assert!(is_abandoned(&result)); - } - - #[test] - fn test_is_abandoned_empty_string() { - let mut result = make_result("vendor/pkg"); - result.abandoned = Some(serde_json::Value::String(String::new())); - assert!(!is_abandoned(&result)); - } - - #[test] - fn test_search_result_output_matches_composer_schema() { - let result = SearchResult { - name: "test/pkg".to_string(), - description: "A test package".to_string(), - url: "https://packagist.org/packages/test/pkg".to_string(), - repository: Some("https://github.com/test/pkg".to_string()), - downloads: 1000, - favers: 50, - abandoned: None, - }; - - let output = SearchResultOutput::from(&result); - let json = serde_json::to_string(&output).unwrap(); - let parsed: serde_json::Value = serde_json::from_str(&json).unwrap(); - - assert_eq!(parsed["name"], "test/pkg"); - assert_eq!(parsed["description"], "A test package"); - assert_eq!(parsed["url"], "https://packagist.org/packages/test/pkg"); - // Composer schema does not include repository, downloads, or favers - assert!(parsed.get("repository").is_none()); - assert!(parsed.get("downloads").is_none()); - assert!(parsed.get("favers").is_none()); - // abandoned is skipped when None - assert!(parsed.get("abandoned").is_none()); - } - - #[test] - fn test_search_result_output_with_abandoned() { - let result = SearchResult { - name: "old/pkg".to_string(), - description: "Old package".to_string(), - url: "https://packagist.org/packages/old/pkg".to_string(), - repository: None, - downloads: 0, - favers: 0, - abandoned: Some(serde_json::Value::String("new/pkg".to_string())), - }; - - let output = SearchResultOutput::from(&result); - let json = serde_json::to_string(&output).unwrap(); - let parsed: serde_json::Value = serde_json::from_str(&json).unwrap(); - - assert_eq!(parsed["abandoned"], "new/pkg"); - } - - fn make_result(name: &str) -> SearchResult { - SearchResult { - name: name.to_string(), - description: String::new(), - url: format!("https://packagist.org/packages/{name}"), - repository: None, - downloads: 0, - favers: 0, - abandoned: None, - } - } -} |
