aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/search.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-11 02:36:42 +0900
committernsfisis <nsfisis@gmail.com>2026-05-11 02:36:42 +0900
commit4e99773a3d203e73b8bf6464490d05649a269fa7 (patch)
tree7a6f1a7f773a14ea72dc2f9ff4124badd345833d /crates/mozart/src/commands/search.rs
parent4df5f8491320e5795718cf0222e80fa27e57c8ad (diff)
downloadphp-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.rs204
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,
- }
- }
-}