pipecircuit-cli 0.0.6

Command-line architectural tools for Pipecircuit programs
use expect_test::expect;
use pipecircuit_visualization::{ArchitectureError, CrateArchitecture, DiagramTarget};

#[test]
fn architecture_remains_reviewable() -> Result<(), ArchitectureError> {
    let architecture = CrateArchitecture::read(env!("CARGO_MANIFEST_DIR"))?;
    expect![[r#"
        ● state machine  ▸ step input  ◆ outcome

        ● Latch
        └── ▸ Activate
            └── ◆ Activation
                ├── Activated
                └── AlreadyActive
    "#]]
    .assert_eq(
        &architecture
            .state_machine("Latch")?
            .render(DiagramTarget::TextTree),
    );
    Ok(())
}