Skip to main content

aprender_contracts_cli/commands/
probar.rs

1use std::path::Path;
2
3use provable_contracts::binding::parse_binding;
4use provable_contracts::probar_gen::{generate_probar_tests, generate_wired_probar_tests};
5use provable_contracts::schema::parse_contract;
6
7pub fn run(path: &Path, binding_path: Option<&Path>) -> Result<(), Box<dyn std::error::Error>> {
8    let contract = parse_contract(path)?;
9
10    if let Some(bp) = binding_path {
11        let binding = parse_binding(bp)?;
12        let contract_file = path
13            .file_name()
14            .and_then(|n| n.to_str())
15            .unwrap_or("unknown");
16        print!(
17            "{}",
18            generate_wired_probar_tests(&contract, contract_file, &binding)
19        );
20    } else {
21        print!("{}", generate_probar_tests(&contract));
22    }
23
24    Ok(())
25}