use jamjet_ir::WorkflowIr;
#[test]
fn canonical_compiled_ir_deserializes() {
let json = include_str!("fixtures/hello_agent_ir.json");
let value: serde_json::Value = serde_json::from_str(json).expect("fixture is valid JSON");
let ir = serde_json::from_value::<WorkflowIr>(value);
assert!(
ir.is_ok(),
"compiled hello-agent IR must deserialize into WorkflowIr, else create_workflow \
would 400 a valid `jamjet run` workflow: {:?}",
ir.err()
);
}
#[test]
fn structurally_broken_ir_is_rejected() {
let value = serde_json::json!({ "workflow_id": "x", "version": "0.1.0" });
assert!(
serde_json::from_value::<WorkflowIr>(value).is_err(),
"incomplete IR must not deserialize into WorkflowIr"
);
}
#[test]
fn fleet_agent_ir_registers() {
let json = include_str!("fixtures/fleet_researcher_ir.json");
let value: serde_json::Value = serde_json::from_str(json).expect("parse fixture json");
let parsed = serde_json::from_value::<jamjet_ir::WorkflowIr>(value);
assert!(
parsed.is_ok(),
"fleet researcher IR must deserialize into WorkflowIr, got: {:?}",
parsed.err()
);
}