greentic-flow-dev 1.1.27665160846

Generic YGTC flow schema/loader/IR for self-describing component nodes.
Documentation
use greentic_flow::{flow_ir::FlowIr, loader::load_ygtc_from_path};

#[test]
fn example_hello_flow_is_valid() {
    let path = std::path::Path::new("docs/examples/hello.ygtc");
    let doc = load_ygtc_from_path(path).expect("load example hello");
    let ir = FlowIr::from_doc(doc).expect("to ir");
    assert_eq!(ir.id, "hello-flow");
    let start = ir.entrypoints.get("default").cloned().unwrap_or_default();
    assert_eq!(start, "start");
    let node = ir.nodes.get("start").expect("start node");
    assert_eq!(node.operation, "templating.handlebars");
    assert!(node.routing.iter().any(|r| r.out));
}

#[test]
fn example_component_flow_is_valid() {
    let path = std::path::Path::new("docs/examples/hello_with_component.ygtc");
    let doc = load_ygtc_from_path(path).expect("load component example");
    let ir = FlowIr::from_doc(doc).expect("to ir");
    assert_eq!(ir.id, "hello-component");
    let node = ir.nodes.get("hello-world").expect("hello-world node");
    assert_eq!(node.operation, "handle_message");
    assert!(node.routing.iter().any(|r| r.out));
}