#![allow(
unused_imports,
dead_code,
non_camel_case_types,
unused_variables,
clippy::all
)]
use prompty::model::Binding;
use prompty::model::context::{LoadContext, SaveContext};
#[test]
fn test_binding_load_json() {
let json = r####"
{
"name": "my-tool",
"input": "input-variable"
}
"####;
let ctx = LoadContext::default();
let result = Binding::from_json(json, &ctx);
assert!(
result.is_ok(),
"Failed to load from JSON: {:?}",
result.err()
);
let instance = result.unwrap();
assert_eq!(instance.name, "my-tool");
assert_eq!(instance.input, "input-variable");
}
#[test]
fn test_binding_load_yaml() {
let yaml = r####"
name: my-tool
input: input-variable
"####;
let ctx = LoadContext::default();
let result = Binding::from_yaml(yaml, &ctx);
assert!(
result.is_ok(),
"Failed to load from YAML: {:?}",
result.err()
);
let instance = result.unwrap();
assert_eq!(instance.name, "my-tool");
assert_eq!(instance.input, "input-variable");
}
#[test]
fn test_binding_roundtrip() {
let json = r####"
{
"name": "my-tool",
"input": "input-variable"
}
"####;
let load_ctx = LoadContext::default();
let result = Binding::from_json(json, &load_ctx);
assert!(result.is_ok(), "Failed to load: {:?}", result.err());
let instance = result.unwrap();
let save_ctx = SaveContext::default();
let json_output = instance.to_json(&save_ctx);
assert!(
json_output.is_ok(),
"Failed to serialize to JSON: {:?}",
json_output.err()
);
}
#[test]
fn test_binding_from_string() {
let value = serde_json::json!("example");
let ctx = LoadContext::default();
let instance = Binding::load_from_value(&value, &ctx);
assert_eq!(instance.input, "example");
}