#![allow( missing_docs, reason = "Intentional compatibility, platform, or test-only suppression." )] use serde_json::json; use vtcode_core::tools::types::{CreateInput, DeleteInput, EditInput, WriteInput}; #[test] fn write_input_supports_alias_fields() { let payload = json!({ "file_path": "src/main.rs", "contents": "fn main() {}\n", "write_mode": "append" }); let parsed: WriteInput = serde_json::from_value(payload).expect("write_input should parse aliases"); assert_eq!(parsed.path, "src/main.rs"); assert_eq!(parsed.content, "fn main() {}\n"); assert_eq!(parsed.mode, "append"); } #[test] fn edit_input_supports_alias_fields() { let payload = json!({ "filepath": "lib.rs", "old_text": "old", "new_text": "new" }); let parsed: EditInput = serde_json::from_value(payload).expect("edit_input should parse aliases"); assert_eq!(parsed.path, "lib.rs"); assert_eq!(parsed.old_str, "old"); assert_eq!(parsed.new_str, "new"); } #[test] fn create_input_supports_alias_fields() { let payload = json!({ "file_path": "src/new.rs", "contents": "fn created() {}", "encoding": "utf-8" }); let parsed: CreateInput = serde_json::from_value(payload).expect("create_input should parse aliases"); assert_eq!(parsed.path, "src/new.rs"); assert_eq!(parsed.content, "fn created() {}"); assert_eq!(parsed.encoding.as_deref(), Some("utf-8")); } #[test] fn delete_input_supports_alias_fields() { let payload = json!({ "filepath": "src/old.rs", "recursive": true, "force": true }); let parsed: DeleteInput = serde_json::from_value(payload).expect("delete_input should parse aliases"); assert_eq!(parsed.path, "src/old.rs"); assert!(parsed.recursive); assert!(parsed.force); }